URL: https://www.overclockers.at/coding-stuff/solvedphp_teil_aus_html_rausloeschen_107132/page_1 - zur Vollversion wechseln!
Folgendes: Ich möchte meine Cds mit MP3-Alben archivieren, zu dem Zweck hab ich ma ein Html - Formular (Formular.html) geschrieben, das per .php - Datei ausgewertet wird, die Einträge werden in eine MySql-Datenbank geschrieben... so weit, so simpel.
Das Formular hat folgenden Aufbau: Anfangs is nur ein Eingabefeld zu sehen, in dem ich die Anzahl der Alben eingeben muss. Dann werden auf Knopfdruck über ein php-script in Formular.html genau so viele Eingabefelder für Band und Album generiert.
Meine Frage lautet: Wie kann ich (am besten per php) die eingefügten Eingabefelder auf Knopfdruck wieder aus Formular.html entfernen?
TiA
Lo_Ord
Code: PHPheader("Location: formular.php?feld1=album&feld2=titel < .... >"); .... $feld1=$_Get['feld1']; echo '<input type='text' name='$feld1'>'; ....
Code: PHPheader("Location: formular.php?nRecords=5"); .... for ($i=0;$i != $nRecords;$i++) { echo "<input type=\"text\" name=\"szTitle$i\">"; ... }
sry, bin noch anfänger... könntest ma des erklären?
Meine Variante, etwas besser erklärt:
Eintrag (in Formular.php) schaut so aus:
In Formular.html werden dann die Eingabefelder bei <!--Beginn--> eingefügt, die Variablen 'band' und 'alben' durchnummeriert und dann die dortigen Eingaben von Datensatz.php ausgelesen und in die Datenbank geschrieben.Code: PHP$eintrag="<!--Beginn-->\n"; while($i<$albenanz) { $eintrag.="<tr><td>Band</td><td><input type='text' name='band"; $eintrag.=$i+1; $eintrag.="' maxlength='30'></td>"; $eintrag.="<td>Album</td><td><input type='text' name='album"; $eintrag.=$i+1; $eintrag.="' maxlength='50'></td></tr>\n"; $i++; }
soll dir vermutlich erklaeren wie die seite aufzurufen istZitat von Lordnur: Was bedeudet die 1. Zeile?
die soll nur den input symbolisieren.. das wäre eigentlich ein redirect.
header("Location: formular.php?nRecords=5");
= window.location() in javascript
er leitet dich weiter...
für solche sachen eignet sich in http://de.php.net/manual/de/index.php nachzuschauen... ist wie selfhtml
@problem:
eins versteh ich nicht... warum machst du es nicht so wie auf tomstig.webdesign-cct.de/anderes/linde/start.php : zuerst gibtst du ein, wieviele du einfügen möchtest, auf der nächsten, wie die heißen und auf der dritten seite einfach in die datenbank reinschreiben?? oder magst du, wenn du auf formular.html gehst, dass immer eine bestimmte anzahl felder angezeigt ist...
@tomstig: eben nicht, sondern genau wie auf deiner hp... mein bisheriges php-Wissen beschränkt sich allerdings bis jetzt auf die Art, wie ichs gemacht hab, also etwas in eine html-datei reinschreiben, aber nicht wieder rauschschneiden können
das ist eh easy...
index.php
Code: PHP<html> <head> <title> Wieviele Einträge wollen Sie in Ihrem Menü haben? </title> </head> <body> <a href="hilfe.html" target="_blank">Hilfe</a><br> <br> Wieviele Einträge wollen Sie in Ihrem Menü haben?? <form action="eintraege.php" method="post"> <input type="text" name="eintrag"> <input type="submit" value="Einträge erstellen"> </form> </body> </html> [/php eintraege.php [php] <?php $i = $_POST[eintrag]; if ($i == 0) { //Wenn der Eintrag null oder nichts ist! Komischerweise auch wenn man buchstaben eingibt ?> <script type="text/javascript"> alert("Sie haben 0, nichts oder Buchstaben in das Feld eingetragen"); </script> <a href="javascript:history.back()">Zurück</a> <?php } else { ?> <html> <head> <title> Welche Überschrift und welche Einträge soll das Menü haben? </title> </head> <body> <a href="hilfe.html" target="_blank">Hilfe</a><br> <br> <table border="0" cellpadding="5px" cellspacing="0px"> <tr> <td> <table> <tr> <td width="120px"> Geben Sie hier die Überschrift ein: </td> <td> <form name="formular1" action="ergebnis.php" method="post"> <input type="text" name="header"> </td> </tr> </table> </td> </tr> <tr> <td>   </td> </tr> <tr> <td> <table> <tr> <td colspan="4"> <li>Welche Einträge soll das Menü haben? <li>Welche Links haben die Einträge? <li>Bitte die Links ganz ausschreiben und wenn sie auf eine externe Seite verweisen, das <b>[url]http://[/url]</b> nicht vergessen. <li>Anklicken, ob der Link in demselben oder in einem neuen Fenster geöffnet werden soll. </td> </tr> <tr> <td> <table border="0"> <?php $i = $_POST[eintrag]; $a = $i+1; $b = 2*$i; for($a;$a<=$b;$a++) { $c = $a - $i; echo " <tr>\n <td>\n Eintrag Nr." . $c . ":\n </td>\n <td width=\"150px\">\n <input type=\"text\" name=\"eintrag" . $c . "\">\n </td>\n <td width=\"85px\">\n mit dem Link\n </td>\n <td width=\"140px\">\n <input type=\"text\" name=\"link" . $c . "\">\n </td>\n <td width=\"30px\">\n  \n </td>\n <td>\n Link in neuem Fenster öffnen?\n </td>\n <td>\n <input type=\"radio\" name=\"radiobutton" . $c . "\" value=\"1\">Ja\n </td>\n <td>\n <input type=\"radio\" name=\"radiobutton" . $c . "\" value=\"2\" checked>Nein\n </td>\n </tr>\n\n"; } ?> <tr> <td colspan="2"> <input type="hidden" name="zahl" value="<?php echo $c ?>"> </td> </tr> <tr> <td>   </td> </tr> <tr> <td colspan="6" align="center"> <input type="submit" value="Menü erstellen"> </td> </tr> </table> </form> </body> </html> <?php } ?>
Code: PHP<?php $head = strip_tags($_POST[header]); $z = $_POST[zahl]; $error = 1; if($head == "") { ?> <script type="text/javascript"> alert("Sie haben die Überschrift vergessen"); </script> <?php $error = 2; } for ($a=1;$a<=$z;$a++) { $eintrag[$a] = strip_tags($_POST[eintrag.$a]); $link[$a] = strip_tags($_POST[link.$a]); if ($eintrag[$a] == "") { ?> <script type="text/javascript"> alert("Eintrag vergessen bei Eintrag <?php echo $a?>"); </script> <?php $error = 2; } if ($link[$a] == "") { ?> <script type="text/javascript"> alert("Eintrag vergessen bei Link <?php echo $a?>"); </script> <?php $error = 2; } } if ($error == 2) { echo "<a href=\"javascript:history.back()\">Zurück</a>"; } else { ?> <html> <head> <title> Das Menü und der Quellcode </title> </head> <body> <a href="hilfe.html" target="_blank">Hilfe</a><br> <br> <table border="1"> <?php $head = $_POST[header]; //Die Überschrift holen $z = $_POST[zahl]; //Die Anzahl der Einträge holen echo "<tr><td>Die Überschrift lautet <b>" . $head . "</b></td></tr>\n"; for ($a=1;$a<=$z;$a++) { $eintrag[$a] = strip_tags($_POST[eintrag.$a]); $link[$a] = strip_tags($_POST[link.$a]); $radion[$a] = $_POST[radiobutton.$a]; echo "<tr><td>Eintrag Nr. " . $a . " heißt <b>" . $eintrag[$a] . "</b>, hat den Link <b>" . $link[$a] . "</b> und soll "; if($radion[$a] == 2) { echo "<b>nicht</b>"; } echo " in einem neuen Fenster geöffnet werden</td></tr>\n"; } ?> </table> <br> <script type="text/javascript"> <?php mt_srand(time()); $random=mt_rand(0,100000); //Dieses Random ist nötig, damit nicht zwei gleiche Menüs sind, denn unter 100000 zweimal die gleiche Zahl zu erzielen, ist seltener als die zwei WTC-Towers mt_srand(time()); $random1=mt_rand(0,25); //Dieses Random ist für die Buchstaben $fx = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"); ?> var <?php echo $fx[$random1].$random ?> = 1; //Der durch Random ermittelte Buchstabe bekommt den Wert 1 zugewiesen. function menue<?php echo $random ?>() { //Hier wird das vorig ermittelte §Random angewand <?php $head = $_POST[header]; //Die Überschrift holen $z = $_POST[zahl]; //Die Anzahl der Einträge holen for ($a=1;$a<=$z;$a++) { $eintrag[$a] = strip_tags($_POST[eintrag.$a]); //§eintrag bekommt jetzt in einem array, von 1 beginnend, alle vorig eingetragenen Werte zugewiesen. $link[$a] = strip_tags($_POST[link.$a]); //§link bekommt jetzt in einem array, von 1 beginnend, alle vorig eingetragenen Werte zugewiesen. $radion[$a] = $_POST[radiobutton.$a]; } ?> if (<?php echo $fx[$random1].$random?> == 1) { //Hier beginnt das geöffnete Menü <?php echo $fx[$random1].$random ?> = 2; //Hier wird der Buchstabe der Wert 2 zugewiesen, damit beim nochmaligen Klicken die else-funktion ausgeführt wird <?php global $link; //$link wird globalisiert, das heißt, man kann den Wert, der außerhalb bearbeitet wurde, auch in der Funktion nützen - das Gegenteil wäre "return" global $eintrag; //$eintrag wird globalisiert global $radion; //$radion wird globalisiert $a = 1; ?> menu<?php echo $random ?>.innerHTML = <?php echo "\"<table border=0><tr><td width='25px'> </td><td>"; //Hier wird dem "menu" der Wert von Random hinzugefügt, und dann fangt das Drop-Down an. while($eintrag[$a]) { //while-schleife wird angewandt, damit auch wirklich alle Einträge aufgezählt werden if($radion[$a] == 1) { //Wenn $radion den Wert 1 hat, also "Ja", dann target="_blank" $tab = "<a href='$link[$a]' target='_blank'>$eintrag[$a]</a><br>"; } if($radion[$a] == 2) { //Wenn $radion den Wert 2 hat, also "Nein, dann nicht target="_blank" $tab = "<a href='$link[$a]'>$eintrag[$a]</a><br>"; } $a++; echo $tab; } echo " </td></tr></table>\";\n"; // Das Ende des Drop-Down ?> bild<?php echo $random ?>.innerHTML = "<img src=\"minus.jpg\">"; //Das Bild neben dem Drop-Down, wenn aktiv } else { <?php echo $fx[$random1].$random ?> = 1; //Hier wird der Buchstabe der Wert 1 zugewiesen; für mehr Info siehe oben menu<?php echo $random ?>.innerHTML = ""; //Hier hat das Drop-Down-Menü nix stehen bild<?php echo $random ?>.innerHTML = "<img src=\"plus.jpg\">"; // Das Bild wenn drop-down inaktiv } } </script> <!-- --> <h2><u>So schaut das ganze dann aus:</u></h2> <table border="0" cellpadding="3px" cellspacing="0" width="150px"> <tr style="cursor:hand" onclick="menue<?php echo $random ?>()"> <td id="bild<?php echo $random ?>" width="11px"> <!-- Das Startbild --> <img src="plus.jpg" width="9px" height="9px"> </td> <td width="139px"> <?php echo $head ?> <!--Hier wird der ganz oben erfasste Wert §head wiedergegeben, nämlich als Überschrift--> </td> </tr> <tr> <td colspan="2" id="menu<?php echo $random ?>"> </td> </tr> </table> <br> <br> <br> <br> <br> <h2><u>Und diesen Quellcode muss man an der gewünschten Stelle einfügen:</u></h2> <table border="10" style="border-collapse: collapse" width="100%" bgcolor="lightyellow" bordercolor="lightblue" cellpadding="10px"> <tr> <td> <pre> <script type="text/javascript"> <?php mt_srand(time()); $random=mt_rand(0,100000); mt_srand(time()); $random1=mt_rand(0,25); $fx = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"); ?> var <?php echo $fx[$random1].$random ?> = 1; function menue<?php echo $random ?>() { <?php $head = $_POST[header]; //Die Überschrift holen $z = $_POST[zahl]; //Die Anzahl der Einträge holen for ($a=1;$a<=$z;$a++) { $eintrag[$a] = strip_tags($_POST[eintrag.$a]); $link[$a] = strip_tags($_POST[link.$a]); $radion[$a] = strip_tags($_POST[radiobutton.$a]); } ?> if (<?php echo $fx[$random1].$random?> == 1) { <?php echo $fx[$random1].$random ?> = 2; <?php global $link; global $eintrag; global $radion; $a = 1; ?> menu<?php echo $random ?>.innerHTML = <?php echo "\"<table border=0><tr><td width='25px'> </td><td>"; while($eintrag[$a]) { if($radion[$a] == 1) { $tab = "<a href='$link[$a]' target='_blank'>$eintrag[$a]</a><br>"; } if($radion[$a] == 2) { $tab = "<a href='$link[$a]'>$eintrag[$a]</a><br>"; } $a++; echo $tab; } echo " </td></tr></table>\";\n"; ?> bild<?php echo $random ?>.innerHTML = "<img src=\"minus.jpg\">"; } else { <?php echo $fx[$random1].$random ?> = 1; menu<?php echo $random ?>.innerHTML = ""; bild<?php echo $random ?>.innerHTML = "<img src=\"plus.jpg\">"; } } </script> <table border="0" cellpadding="3px" cellspacing="0" width="150px"> <tr style="cursor:hand" onclick="menue<?php echo $random ?>()"> <td id="bild<?php echo $random ?>" width="11px"> <img src="plus.jpg" width="9px" height="9px"> </td> <td width="139px"> <?php echo $head ?> </td> </tr> <tr> <td colspan="2" id="menu<?php echo $random ?>"> </td> </tr> </table> </pre> </td> </tr> </table> </body> </html> <?php } ?>
Hilfe!Gehts nicht einfacher? Ich bin ja froh, wenn ich meinen viel kürzeren Code an einem Nachmittag zambring...
Könnt ich nicht einfach eine temporäre .html Datei mit der eingegebenen Anzahl Band/Alben-EingabeFeldern erstellen, die mit Datensatz.php auswerten und dann wieder löschen?
So, Big THX @ Tomstig, hab deinen Code analysiert, seziert, gekürzt und dann endlich das Prinzip verstanden! Jetzt funzt alles so, wie ichs wollte! *freu*
sehr gut
du kannst auch nur eine datei machen... geht wie folgt:
(das ist das simpelste beispiel)
Code: PHP<?php if(!isset($_GET['[COLOR=deeppink]submit[/COLOR]'])){ //hier schaut er, ob in der adresszeile schon "submit=" steht.... wenn nein soll er den folgenden code ausführen ?> <form action="<?php $PHP_SELF ?>" method="get"> //es gibt was besseres als $PHP_SELF, aber ich finde die global-variable nicht :(; $PHP_SELF leitet dich auf die gleiche seite weiter... Name: <input type="text" name="name"> <input type="submit" value="Abschicken" name="[COLOR=deeppink]submit[/COLOR]"> //mit name wird später in die adresszeile "submit=Abschicken" geschrieben... </form> <?php }else{ //wenn es ein submit in der adresszeile gibt, dann gehts hier weiter echo "Hallo, " . $_GET['name'] . "!"; }?>
was besseres hm...Zitat von tomstigCode: PHP<?php <form action="<?php $PHP_SELF ?>" method="get"> //es gibt was besseres als $PHP_SELF, aber ich finde die global-variable nicht :(; $PHP_SELF leitet dich auf die gleiche seite weiter... ?>
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025