James: Array im formular!

Hi;

ich habe in meinem script ein array, dass daten übermitteln soll (das tut es aber nicht)

stark vereinfacht schauts so aus:

<?PHP
$n=0;
print "<table ><form method=post action=testsql.php ><tr><td><input type=text name=$a[$n]></td>
      <td></td></tr>";

print "<tr><td><input type=submit name=los value='Fertig'></td></tr></form></table>";

if(isset($_POST['los']))
{

$i=0;
  $data=$_POST['a'][0].")";

print $data;
}

?>

das gibt rein gar nichts aus, das skript!!

  1. Huhu James

    das gibt rein gar nichts aus, das skript!!

    Na immerhin den resultierenden HTML-Quelltext könntest Du Dir angucken.
    Dort  solltest Du es sehen.

    Wenn Du den Level für das Error Reporting runtersetzt bekommst Du es sogar "gesagt" ;-)

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
  2. echo $begrüßung;

    Das

    ... <input type=text name=$a[$n]>

    und das

    $data=$_POST['a'][0].")";

    harmoniert nicht miteinander. Lass dir mit print_r($_POST) anzeigen, was in $_POST wirklich steht. (Ein <pre> vorher erhöht die Übersichtlichkeit.)

    Außerdem empfiehlt es sich das error_reporting auf E_ALL zu stellen, damit nicht nützliche Hinweise auf Fehlerquellen unterdrückt werden.

    echo "$verabschiedung $name";

    1. harmoniert nicht miteinander. Lass dir mit print_r($_POST) anzeigen, was in $_POST wirklich steht.

      Das ist das Problem - es steht nichts drinnen^^ womit füll ich das denn am geschicktesten???

      1. echo $begrüßung;

        harmoniert nicht miteinander. Lass dir mit print_r($_POST) anzeigen, was in $_POST wirklich steht.

        Das ist das Problem - es steht nichts drinnen^^ womit füll ich das denn am geschicktesten???

        Gar nicht. Das $_POST wird von PHP gefüllt mit den übertragenen Daten. Die Frage ist also, wie du die Daten entsprechend übertragen lässt.

        Hier scheint mir der Fehler zu sein.

        <input type=text name=$a[$n]>

        Was steht denn in $a drin? Oder hätte das nur ein a sein sollen?

        Das Konstrukt $a[$n] mit dem (vermutlich) nicht vorhandenem $a wird von PHP am Ende als Leerstring ausgegeben, so dass dein name-Attribut leer sein dürfte, wenn du dir den HTML-Quelltext ansiehst.

        echo "$verabschiedung $name";

  3. 1. Fehler:
    Dein Formular wird an der falschen Stelle geöffnet, so wie es aussieht, öffnest du es in einer Spalte, damit ist die 'Reichweite' des Formulars beendet mit dem Ende dieser Spalte !

    2. Fehler:
    HTML kann nicht PHP.
    Du musst der Eingabe einen konkreten Namen zuweisen.

    Ändere nach

    name="a"

    und

    $data=$_POST["a"];

    ---

    Falls du jedoch viele Eingaben haben willst, dann nehme eine Schleife und ändere

    name="a_$loop1"

    und

    if (isset($_POST["a_$loop2"]) name[$loop2]=$_POST["a_$loop2"]