Veröffentlicht 3. April 200223 j 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
4. April 200223 j 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>"
4. April 200223 j 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>
4. April 200223 j 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:)
4. April 200223 j 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.
4. April 200223 j Autor 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
4. April 200223 j @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
4. April 200223 j Autor 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
4. April 200223 j Autor 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
5. April 200223 j 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:)
7. April 200223 j Autor 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
7. April 200223 j Autor :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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.