post übergibt nur teilweise

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • post übergibt nur teilweise

    Hallo,

    ich krieg langsam die krise.. und zwar:
    Ich will über ein Formular Daten aus ner Mysql-DB ändern. d.h. die Sachen werden aus der db geholt, ins Formular geschrieben, wo sie geändert werden können, und danach sollen die db geupdated werden.
    Ist ja eigentlich nicht sonderlich schwer, nur blöderweise werden die Daten nach dem ändern nicht übergeben.

    Da mehrere zeilen pro seite ausgegeben werden, hab ich im formular arrays drin.
    print_r($_POST); gibt folgendes aus:
    "Array ( [id] => Array ( [0] => 151 [1] => 152 [2] => 159 [9] => 160 ) [titel] => [text] => [name] => [kat1] => [file] => [datum] => [typ] => [kat2] => [change] => AENDERN )"

    mit der id klappt das wunderbar, nur beim rest nicht. irgendwie komisch, find ich.
    die db-abfrage funktioniert, das formular enthält die ganzen daten.

    quellcode (gekürzt):

    PHP-Code:
    // ...
    <?
        if(isset($_POST['change']))
          {
            print_r($_POST);

            $id = $_POST['id'];
            $titel = $_POST['titel'];
            $datum = $_POST['datum'];
            $text = $_POST['text'];
            $name = $_POST['name'];
            $typ = $_POST['typ'];
            $kat1 = $_POST['kat1'];
            $kat2 = $_POST['kat2'];
            $file = $_POST['file'];

            $count = count($_POST['datum']); $i=0;
            while($count > $i)
              { // hier kommt dann das UPDATE ...
          }

    // ...
    ?>
    <form action="gallery_showresults.php" method="post" name="eintraege">
    <?

    $i=0;
    while($eintraege = $db->fetch_array($result))
     { $id = $eintraege['id'];
                  
       $datum = date("d.m.Y",$eintraege['datum']);
       $path = "../".$homedir."/".$std_dir."/".$eintraege['file'].".".$eintraege['typ'];
      ?>
       <input type="hidden" name="id[<?echo $i?>]" value="<? echo $id ?>">
       <input type="text" name="titel[<? echo $i ?>]" value="<? echo $eintraege['titel']; ?>" size="20" maxlength="255">
       <textarea name="text[<?echo $i?>]" cols="35" rows="3"><? echo $eintraege['text']; ?></textarea>
       <input type="Text" name="name[<?echo $i?>]" value="<? echo $eintraege['name']; ?>" size="15" maxlength="255">
       <input type="Text" name="kat1[<?echo $i?>]" value="<? echo $eintraege['kat1']; ?>" size="12" maxlength="64">
       <input type="Text" name="file[<?echo $i?>]" value="<? echo $eintraege['file']; ?>" size="20" maxlength="64">

    // ... hier kommen dann noch die restlichen felder
                  
      <? $i++;
     } ?>

    <input type="Submit" name="change" value="AENDERN">
    </form>
    die einzigen unterschiede zwischen dem id-feld und dem rest ist einmal das type="hidden" und, dass die id nicht über $eintraege['id'] angesprochen wird. hab aber beides schon probiert, klappt trotzdem nicht.

    achso, ich bekomm auch noch ein paar von denen hier:
    "Notice: Uninitialized string offset: 0 in c:\webserver\www\acp\gallery_showresults.php on line 72
    Notice: Undefined offset: 1 in c:\webserver\www\acp\gallery_showresults.php on line 73"
    ist ja aber logisch, wenn nichts übergeben wird...
    sonst kommen keine fehlermeldungen.


    ich hoffe ihr könnt mir helfen,

    thx moeter

  • #2
    Re: post übergibt nur teilweise

    Original geschrieben von moeter
    die db-abfrage funktioniert, das formular enthält die ganzen daten.
    und wie sieht das formular im html-quelltext aus - stehen da auch bei den textfeldern jeweils die "richtigen" namen, analog zu den ID-feldern?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      jup. das passt auch

      PHP-Code:
      <td title="ID des Bildes" valign="middle" align="right"><b>151</b><input type="hidden" name="id[0]" value="151"></td>
      <
      td title="Titel des Bildes"><input type="text" name="titel[0]" value="03.6.03" size="20" maxlength="255"></td>
      <
      td title="Bildbeschreibung/ -unterschrift (opt)" rowspan="2"><textarea name="text[0]" cols="35" rows="3"></textarea></td>
      <
      td title="Name des Fotografen (opt)"><input type="Text" name="name[0]" value="Becht" size="15" maxlength="255"></td>
      <
      td title="Haupt-Kategorie"><input type="Text" name="kat1[0]" value="HL" size="12" maxlength="64"></td>
      <
      td title="Dateiname (ohne Erweiterung)"><input type="Text" name="file[0]" value="03.6.03" size="20" maxlength="64"></td

      Kommentar


      • #4
        nimm mal die ganzen zähler aus deinem html code raus arrays kannste ohne index versenden

        zb: name="titel[]"
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          jup, richtig. kommt aber aufs selbe raus...

          PHP-Code:
          <input type="hidden" name="id[]" value="<? echo $id ?>">
          <input type="text" name="titel[]" value="<? echo $eintraege['titel']; ?>" size="20" maxlength="255">
          <textarea name="text[]" cols="35" rows="3"><? echo $eintraege['text']; ?></textarea>
          <input type="Text" name="name[]" value="<? echo $eintraege['name']; ?>" size="15" maxlength="255>
          <input type="Text" name="kat1[]" value="<? echo $eintraege['kat1']; ?>" size="12" maxlength="64>
          <input type="Text" name="file[]" value="<? echo $eintraege['file']; ?>" size="20" maxlength="64">

          Kommentar


          • #6
            änder mal
            PHP-Code:
            if(isset($_POST['change'])) 
            in
            PHP-Code:
            if(!empty($_POST)) 

            Kommentar


            • #7
              und dann?

              das hat doch nichts zur folge, außer dass ich jetzt mit jedem button in die schleife kommen würde.

              PS: ich habs natürlich trotzdem ausprobiert -> keine änderung

              Kommentar


              • #8
                poste doch mal das ganze formular
                Beantworte nie Threads mit mehr als 15 followups...
                Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                Kommentar


                • #9
                  och nööö...

                  is doch immer das selbe

                  hatte weiter unten noch ein paar felder für massen-editieren und hab da namen wie z.b. "titel", oder "datum" benutzt...
                  haut mich !


                  sorry, blöd gelaufen.

                  trotzdem danke an alle
                  besonders an MelloPie. hast mich drauf gebracht, da mal zu gucken.


                  PS: wenn ihr wollt könnt ihr den thread wieder löschen

                  Kommentar


                  • #10
                    neenee, Threads werden nicht gelöscht. Vielleicht kommts ja sogar noch mal vor...

                    Kommentar

                    Lädt...
                    X