Tool-Time Geschrieben 3. April 2002 Geschrieben 3. April 2002 Naben, ich habe ein PHP-Script geschrieben, welche die Auswahl aus Seite 1 an 2 weitergibt - diese geschiet durch das Verbinden der Daten aus der Mysql Datenbank - per $n - nur wird $n nicht richtig an die Seite 2 übergeben. vielleicht weiß jemand von euch wo der fehler liegt : Weiß jemand von euch eventuell wir ich ein Datenbank - Daten in ein Textfeld lade ? <?php include "_language.inc"; include "__config.inc"; # my script # ?> <TABLE BGCOLOR="<? echo $tablebg; ?>" WIDTH="95%" BORDER="0" CELLSPACING="1" CELLPADDING="4" ALIGN="CENTER" CLASS="normaltext"> <tr bgcolor="<? echo $tableb; ?>"> <td width="100%" align="center"> <b><FONT SIZE="5">Board Regeln<br><BR> <font size=-1><br></b></font></font></b> <TABLE BGCOLOR="<? echo $tableA ; ?>" WIDTH="100%" BORDER="0" CELLSPACING="1" CELLPADDING="6" ALIGN="CENTER" CLASS="normaltext"> </table> <? # Datenbank Verbindung # $db = mysql_connect($mysqlhost, $mysqluser, $mysqlpassword); # Datenbank # $boardregeln = boardregeln; echo "<form action='boardregeln_admin.php' method='post'>"; echo "<div align='center'>"; echo "<input type='submit' name='add' value='Regeln hinzufügen'>"; echo "<input type='submit' name='change' value='Regeln ändern'>"; echo "<input type='submit' name='show' value='Regeln anzeigen'>"; echo "<p></div>"; # If Abfragen für das Hinzufügen von Regeln # if ($add or $send) { if ($send) { # Abfrage # $sqlab = "insert $boardregeln"; $sqlab .= "(nummer, regel) values"; $sqlab .= "($nr, '$regel')"; # Datenbank # mysql_db_query("$mysqldb", $sqlab); $num = mysql_affected_rows(); # Sicherheitsabfrage # if($num>0) { echo "<div align='center'>"; echo "<b>Die Regel wurde gespeichert</b><br>"; echo "Alle Regeln <a href='./regel.php'>anzeigen</a>"; echo "</div>"; } else { echo "<div align='center'>"; echo "<b>Beim Speichern der Regeln ist ein Fehler aufgetreten</b><br>"; echo "<b>Bitte überprüfen Sie ihre Eingabe</b><p>"; echo "</div>"; } } echo "<div align='center'>"; echo "<form action='boardregeln_admin.php' mehtod='post'>"; echo "<input name='nr'> Nummer<p>"; echo "Bitte hier einmal die Regel (max. 255Zeichen):<br>"; echo "<textarea cols='42' rows='8' name='regel'></textarea><p>"; echo "<input type='submit' name='send' value='Regel Speichern'>"; echo "<input type='reset'>"; echo "</div>"; } # If Abfrage für das ändern der Regeln # # Speichern der Änderung # if ($send_ca) { $sqlab_ca ="update $boardregeln set regel='$neurg' where nummer =$n"; mysql_db_query("$mysqldb", $sqlab_ca); $num_ca = mysql_affected_rows(); # Sicherheitsabfragung # if($num_ca>0) { echo "<b><div align='center'>Die Regel wurde geändert</div></b>"; } else { echo "<b><div align='center'>Beim ändern der Regeln ist ein Fehler aufgetretten</div></b>"; } } # Auslesen der Regeln und erstellen der GUI # if($send_c) { # Änderungs GUI # Datenbank / Abfrage # echo "<b> <div align='center'>Regel ändern </div></b><p>"; $sqlab_c = "select * from $boardregeln where nummer='$n'"; $res = mysql_db_query ("$mysqldb", $sqlab_c); $altnr = mysql_result($res, 0, "nummer"); $altrg = mysql_result($res, 0, "regel"); echo "Bitte ändern Sie die Regel $altnr<p>"; echo "<textarea cols='42' rows='8' name='neurg' value='$altrg'></textarea><p>"; echo "<input type='submit' value='Regel geändert Speichern' name='send_ca'>"; echo "<input type='reset'></div><br>"; } if($change ) { # Anzeigen der ganzen Regeln zur auswahl # # Datenbank # $res = mysql_db_query("$mysqldb","select * from $boardregeln order by nummer asc"); $num = mysql_num_rows($res); # Tabelle # echo "<div align='center'>"; echo "<table border>"; echo "<tr><td></td> <td><b> Nr. <b></td> <td><b> <div align='center'>Regeln </div</b></td> </tr>"; # For-Schleifen mit Ausgabe # for($i=0; $i<$num; $i++) { $nr = mysql_result($res, $i, "nummer"); $rg = mysql_result($res, $i, "regel"); echo "<tr><td> <input type='radio' name='auswahl' value='$n'>"; echo "<td> $nr </td> <td> $rg </td>"; } echo "</table><p>"; echo "<input type='submit' name='send_c' value='Ausgewählte Regel ändern'>"; echo "<br></div>"; } include "_footer.inc"; ?> Bin für jeder lösung offen alles läuft, Tool-Time Zitieren
beetFreeQ Geschrieben 4. April 2002 Geschrieben 4. April 2002 Hmm, sieht etwas unübersichtlich aus - hättest lieber den PHP-Tag vom vBB nehmen sollen - wäre etwas farbiger geworden! Welche Links sind es denn, die Daten übergeben, die nicht funzen? Also ich hab bisher nur ein Formular entdeckt, dem Du mehrere Submit-Buttons mit Namen zugewiesen hast. AFAIK kann das eigentlich nicht so funzen, da der Submit-Button nur dazu da ist, das Formular weiterzugeben, aber AFAIK keinen eigenen auslesbaren Wert erzeugt... Ansonsten vermisse ich bei Deinen Links Get-Übergaben! Wenn Du die zu übergebenden Variablen per Get an den Link anhängst, sollte es doch gehen, oder? Bsp: echo "<a href='link.php?variable1=$variable1&variable2=$variable2'>Link</a>" Zitieren
beetFreeQ Geschrieben 4. April 2002 Geschrieben 4. April 2002 achso, wegen der Datenbank-Daten in ein Textfeld: Das geht ganz einfach, indem Du die Daten in Variablen schreibst und diese Variablen dann an der Stelle, an der normalerweise der Text steht, einfügst! Bsp: <input type="text" name="name" value="<?php echo "$name"; ?>"> bzw. <textarea name="text"><?php echo "$text"; ?></textarea> Zitieren
DanielH Geschrieben 4. April 2002 Geschrieben 4. April 2002 Also ich hab bisher nur ein Formular entdeckt, dem Du mehrere Submit-Buttons mit Namen zugewiesen hast. AFAIK kann das eigentlich nicht so funzen, da der Submit-Button nur dazu da ist, das Formular weiterzugeben, aber AFAIK keinen eigenen auslesbaren Wert erzeugt... Doch: wenn ein Submitbutton Name(z.B. button) und value(z.B. 15) hat steht bei Methode get dann in der Adressleiste bla.php?button=15 MfG:) Zitieren
Valium Geschrieben 4. April 2002 Geschrieben 4. April 2002 Wie wärs es wie normale Menschen zu machen und Werte in Formularen die nicht sichtbar (auf der gerenderten Seite) sein sollen, mit hidden Feldern zu übergeben? <input type="hidden" name="n" value="<? echo $n;?>"> laut Selfhtml sollte man dann auch jedem input Feld sagen, was für ein Typ es ist, sowas wie <input name="irgendwas"> ist Blödsinn. Zitieren
Tool-Time Geschrieben 4. April 2002 Autor Geschrieben 4. April 2002 Original geschrieben von beetFreeQ achso, wegen der Datenbank-Daten in ein Textfeld: Das geht ganz einfach, indem Du die Daten in Variablen schreibst und diese Variablen dann an der Stelle, an der normalerweise der Text steht, einfügst! Bsp: <input type="text" name="name" value="<?php echo "$name"; ?>"> bzw. <textarea name="text"><?php echo "$text"; ?></textarea> Danke für die antworten Das habe ich auch so gemacht, nur passiert das nicht so ganz : # Änderungs GUI # Datenbank / Abfrage # echo "<b> <div align='center'>Regel ändern </div></b><p>"; $sqlab_c = "select * from $boardregeln where nummer='$n'"; $res = mysql_db_query ("$mysqldb", $sqlab_c); $altnr = mysql_result($res, 0, "nummer"); $altrg = mysql_result($res, 0, "regel"); echo "Bitte ändern Sie die Regel $altnr<p>"; echo "<textarea cols='42' rows='8' name='neurg' value='$altrg'></textarea><p>"; echo "<input type='submit' value='Regel geändert Speichern' name='send_ca'>"; echo "<input type='reset'></div><br>"; ich versuche es nachher noch einmal per HIdden Input vielleicht läuft es dann besser schon einmal danke für euer Antworten Tool-Time Zitieren
beetFreeQ Geschrieben 4. April 2002 Geschrieben 4. April 2002 @ToolTime: Deine Textarea kann auch so nicht funzen, denn eine Textarea hat - anders als Inputfelder - keinen Value! Da mußt Du die Variable zwischen dem Anfangs- und Endtag der Textarea packen (siehe mein Beispiel weiter oben!)! @DanielH: Hey, wußte ich garnicht... - feine Sache das - kann nette Vorteile haben Zitieren
Tool-Time Geschrieben 4. April 2002 Autor Geschrieben 4. April 2002 Danke für den Tip jetzt klappt es mit dem Testfeld, ich muß nur noch die übergabe hin bekommen, aber das teste ich gleich mal durch Tool-Time Zitieren
Tool-Time Geschrieben 4. April 2002 Autor Geschrieben 4. April 2002 Original geschrieben von DanielH Doch: wenn ein Submitbutton Name(z.B. button) und value(z.B. 15) hat steht bei Methode get dann in der Adressleiste bla.php?button=15 MfG:) Wie meinst du das ? etwa so : for($i=0; $i<$num; $i++) { $nr = mysql_result($res, $i, "nummer"); $rg = mysql_result($res, $i, "regel"); echo "<tr><td> <input type='radio' name='auswahl' value='$n'>"; echo "<td> $nr </td> <td> $rg </td>"; } echo "</table><p>"; echo "<form action ='boardregeln_admin.php' method ='get'>"; echo "<input type='submit' name='send_c' value='Ausgewählte Regel ändern'>"; echo "<br></div></form>"; Also, erstelle einen Radio Button mit dem name='auswahl' und mit value ='$n' . ist das richtig wenn ich nun einfach nur echo "<form action ='boardregeln_admin.php' method ='get'>"; schreiben ? Tool-Time Zitieren
DanielH Geschrieben 5. April 2002 Geschrieben 5. April 2002 Hi, so in etwa... wenn du Variablen an ein anderes Script übergibst, braucht der submitbutton keinen Namen. Bei deiner Lösung über get müsste in dem Beispiel in der Adressleiste stehen: z.B. i hat den wert 20 boardregeln_admin.php?auswahl=20&send_c=Ausgwählte%20Regel%20ändern Aber es ist besser Variablen mittels post zu übergeben, weil sie dann nicht in der Adressleiste zu sehen sind. Aber da ist ein Fehler drin: Die Zeile echo"<form action=...." sollte über die for-Schleife, sonst wird der Wert des Radiobuttons nicht übergeben. MfG:) Zitieren
Tool-Time Geschrieben 7. April 2002 Autor Geschrieben 7. April 2002 Morgen, ich habe alles so gemacht / ausprobiert was ihr mir geraten habt, nur funktioniert es immer noch nicht. Ich habe mir ein andres Script geschrieben, welches genau so bzw. ähnlich läuft: Auszug <?php # Überschrift # echo"<div align='center'><font size='5'>Lager - Administration"; echo"</font><p>"; # Auswahl # echo"<form action='lager_admin.php' method='get'>"; echo"<input type='submit' name='add' value='Lagerliste ergänzen'>"; echo"<input type='submit' name='change' value='Lagerliste ändern'>"; echo"<input type='submit' name='del' value='Produkte löschen'>"; echo"<input type='submit' name='show' value='Lagerlister anzeigen'"; echo"<p><p></div>"; . . . # Change # Lagerliste ändern else if($change) { echo"<div align='center'>"; echo"<font size='4'>Produkte von der Lagerliste ändern</font><p>"; //Produktgruppe echo"<hr><p>"; $db_change = mysql_connect(); $sqldb_change = "select * from lager order by produktgruppe asc"; $res_change = mysql_db_query("ewes", $sqldb_change); $num_change = mysql_num_rows($res_change); # Sicherheitsabfrage # if($num_change==0) { echo"<p><div align='center'>"; echo"<Font Size='5'>Es wurden keine Produkte hinterlegt</font>"; echo"</div><p><p>"; } echo"<table border>"; echo"<tr><td></td><td></td><td><b>Auswahl</b></td><td><b>Modell</b></td><td><b>Hersteller</b></td>"; echo"<td><div align='center'><b>Beschreibung</b></div></td><td><b>Anzahl</b></td>"; echo"<td><b>EK-Preis</b></td><td><b>VK-Preis</b></td><td><b>Reserviert</b></td></tr>"; # Auslesen der Datenbank :c ) # for ($i=0; $i<$num_change; $i++) { $id = mysql_result($res_change, $i, "id"); $pro = mysql_result($res_change, $i, "produktgruppe"); $mod = mysql_result($res_change, $i, "modell"); $her = mysql_result($res_change, $i, "hersteller"); $men = mysql_result($res_change, $i, "menge"); $kon = mysql_result($res_change, $i, "beschreibung"); $ek = mysql_result($res_change, $i, "ek"); $vk = mysql_result($res_change, $i, "vk"); $re = mysql_result($res_change, $i, "res"); //ausgabe echo "<tr><td><input type='hidden' name='pro' value='$pro'></td>"; echo "<td><input name='id_a' value='$id'></td>"; echo"<td><input type='radio' name='id_' value='$id'></td>"; echo "<td>$mod</td><td>$her</td><td>$kon</td>"; echo"<td><div align='center'>$men</td>"; echo "<td>$ek €</td><td>$vk € </td><td><b>$re</b></td></tr>"; } echo"</tabel><p>"; echo"<div align='center'>"; echo"<input type='submit' name='send_change' value='Produkt ändern'><p></div>"; mysql_close($db_change); } # aulsesen der change vaiablen # if ($send_change) { echo"<div align='center'>"; echo"<font size='4'>Produkte von der Lagerliste ändern</font><p>"; echo"<hr><p>"; $db_change_sel = mysql_connect(); $sqlab_change_sel ="select * from lager where id = $id_a"; $res_change_sel = mysql_db_query("ewes", $sqlab_change_sel); if($res_change_sel==0) { echo"Es wurde kein Produkt ausgewählt"; } #Ausgabe $id = mysql_result($res_change_sel, 0, "id"); $pro = mysql_result($res_change_sel, 0, "produktgruppe"); $mod = mysql_result($res_change_sel, 0, "modell"); $her = mysql_result($res_change_sel, 0, "hersteller"); $men = mysql_result($res_change_sel, 0, "menge"); $kon = mysql_result($res_change_sel, 0, "beschreibung"); $ek = mysql_result($res_change_sel, 0, "ek"); $vk = mysql_result($res_change_sel, 0, "vk"); $re = mysql_result($res_change_sel, 0, "res"); echo"<input name='id' value='$id_a'>"; } . . . ?> [/php] Nicht wundern, aber bei der Ausgabe wollte ich extra sehen was für ID's ausgegeben werden : [b] echo "<td><input name='id_a' value='$id'></td>"; [/b] Leider bekomme ich im nächsten Fenster dann nur die Letzte ID als Auswahl angezeigt, während beim ersten Script zumindest immer Nummer 8 angezeigt wurde Ich bin ratlos, ich habe auch schon mit dem Variabeln innerhalb der [i]if ($chagen) und if($send_change)[/i] herum gespielt. Leider Vergebens Vielleicht seht ihr ja einen Fehler . Kann es sein das ich einen Grundlegenden Fehler mache ? Ich versuche es geleich einmal per [b]<a href='http://localhost/lager/lager_admin.php?pro=Drucker&id_a=2&pro=Monitor&id_a=1&pro=PC&id_a=4&pro=PC&id_a=5&pro=Sonstiges&id_a=3&pro=Sonstiges&id_a= $id &send_change=Produkt+%E4ndern'></a> Aber irgendwie muss es doch auch mit den Radio-Buttons zu realisieren sein. Schon einmal danke im voraus Tool-Time Zitieren
Tool-Time Geschrieben 7. April 2002 Autor Geschrieben 7. April 2002 :D Problem selber gefunden Ich hatte eine Variabel falsch benannt mal schauen ob es nun auch in dem andrem Script läuft Trotzdem noch einmal danke für eure Mühe Bis denn Tool-Time :OD Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.