Übertragung klappt nicht ganz


  • ho2220
  • 1424 Aufrufe 15 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Übertragung klappt nicht ganz

    Hallo,

    ich habe mit dem Quelltext folgendes Problem: Bei der Übertragung der " Einsatzkräfte" wird immer nur die erste auswahl übermittelt. So wenn ich das mit Arrays machen würde sollte dies doch gehen oder ? Allerdings verstehe ich das noch nicht sooo ganz, vielleicht hätte jemand kurz zeit sich das anzusehen?!

    HTML-Quellcode

    1. <tr><td colspan="4">Einsatzkr&auml;fte</td></tr>
    2. <tr><td colspan="4">
    3. <p>
    4. <select name="ekraefte[]" size="5" multiple="multiple">
    5. <option>LF 8/6</option>
    6. <option>LF 16 TS</option>
    7. <option>LF 8/18</option>
    8. <option>SW 2000</option>
    9. <option>MTF</option>
    10. </select>
    11. </p>
    12. </td></tr>
    13. <tr><td colspan="4">Text</td></tr>
    14. <tr><td colspan="4"><textarea cols="50" rows="10" name="etext" maxlenth="2000"></textarea></td></tr>
    15. <tr><td valign="top"><input type="submit" value="Eintragen" class="schalter"></td>
    16. <td valign="top"><input type="reset" value="Felder l&ouml;schen" class="schalter"></td></tr>
    17. </form>
    18. <?php
    19. if ($_POST['passwort'] == "XXXX") {
    20. if ($_POST['ttag'] <> "") {
    21. $dbf = dbase_open("einsaetze.dbf",2);
    22. $anzahl = dbase_numrecords($dbf);
    23. $index = time();
    24. $tjahr = $_POST['tjahr'];
    25. $tmonat = $_POST['tmonat'];
    26. $ttag = $_POST['ttag'];
    27. $etext = $_POST['etext'];
    28. $euhrzeit = $_POST['euhrzeit'];
    29. $edauer = $_POST['edauer'];
    30. $egebiet = $_POST['egebiet'];
    31. $ekraefte = $_POST["ekraefte[]"];
    32. if ($tjahr < 2000) {$tjahr = $tjahr + 2000;}
    33. $esort = $tjahr*10000 + $tmonat*100 + $ttag;
    34. $depp = "<b>Achtung - Falscheintrag, dieses Datum gibt es nicht!</b><br>";
    35. if ($tmonat > 12) {$etext = $depp." ".$etext;}
    36. if ($ttag > 31) {$etext = $depp." ".$etext;}
    37. if ($tmonat == 4) { if ($ttag > 30) {$etext = $depp." ".$etext;} }
    38. if ($tmonat == 6) { if ($ttag > 30) {$etext = $depp." ".$etext;} }
    39. if ($tmonat == 9) { if ($ttag > 30) {$etext = $depp." ".$etext;} }
    40. if ($tmonat == 11) { if ($ttag > 30) {$etext = $depp." ".$etext;} }
    41. if ($tmonat == 2) { if ($ttag > 29) {$etext = $depp." ".$etext;} }
    42. $sj = bcmod($tjahr,4);
    43. if ($tmonat == 2) { if($sj <> 0) { if($ttag > 28) {$etext = $depp." ".$etext;} } }
    44. if ($ttag == "1") {$ttag = "01";}
    45. if ($ttag == "2") {$ttag = "02";}
    46. if ($ttag == "3") {$ttag = "03";}
    47. if ($ttag == "4") {$ttag = "04";}
    48. if ($ttag == "5") {$ttag = "05";}
    49. if ($ttag == "6") {$ttag = "06";}
    50. if ($ttag == "7") {$ttag = "07";}
    51. if ($ttag == "8") {$ttag = "08";}
    52. if ($ttag == "9") {$ttag = "09";}
    53. if ($tmonat == "1") {$tmonat = "01";}
    54. if ($tmonat == "2") {$tmonat = "02";}
    55. if ($tmonat == "3") {$tmonat = "03";}
    56. if ($tmonat == "4") {$tmonat = "04";}
    57. if ($tmonat == "5") {$tmonat = "05";}
    58. if ($tmonat == "6") {$tmonat = "06";}
    59. if ($tmonat == "7") {$tmonat = "07";}
    60. if ($tmonat == "8") {$tmonat = "08";}
    61. if ($tmonat == "9") {$tmonat = "09";}
    62. $edatum = $ttag.".".$tmonat.".".$tjahr;
    63. $dummy = array(
    64. $esort,
    65. $edatum,
    66. $euhrzeit,
    67. $edauer,
    68. $egebiet,
    69. $ekraefte,
    70. $etext,
    71. $index);
    72. dbase_add_record($dbf,$dummy);
    73. dbase_close($dbf);
    74. echo "<tr><td colspan=\"3\">Die Daten wurden erfolgreich gesendet.</td></tr>\n";
    75. }
    76. }
    77. ?>
    78. </table>
    79. <br><br><a href="http://www.freesoft-board.to/intern/index.php">zur&uuml;ck</a>
    80. </body>
    81. </html>
    Alles anzeigen


    Grüße

    Holger
  • Hi,
    warum schreibst du $_POST["ekraefte[]"], wenn der Name doch ekraefte ist?
    $_POST['ekraefte'] wird dadurch zu einem Array. Darum musst du das auch wie ein Array behandeln. Sei es nun implode(',',$_POST['ekraefte']) oder eine foreach-Schleife.

    Am besten setze einfach mal "print_r($_POST['ekraefte']); exit;" hinter "if ($_POST['passwort'] == "XXXX") {" um zu sehen, was alles übergeben wird.

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • hm...

    probier es doch ma mit checkboxen, und die die angehackt sind, sollen halt dann eingetragen werden?

    zu deiner datumsprüfung.

    schon nen ganzer haufen, unnützes script.

    guck dir ma die funktion

    Quellcode

    1. checkdate($monat, $tag, $jahr);

    an, da brauhcst du nich alles durch if abfragen auswerten. auch dort werden, nicht so wie bei dir, die schaltjahre berücksichtigt.

    mfg
  • w00t ^^
    Hmmm, also nagel mich nicht darauf fest, aber eigentlich kann dann nur das Problem sein, dass du keine "value"-Attribute benutzt.
    Bsp. <option value="hallo">asdad</option>

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • mruniverse schrieb:


    probier es doch ma mit checkboxen, und die die angehackt sind, sollen halt dann eingetragen werden?


    jap das ist auch ne ganz gute idee wie schreib ich das am besten um ?
    so oder ?

    HTML-Quellcode

    1. <form action="input_checkbox.htm">
    2. <p>Wählen Sie die gewünschten Fahrzeuge aus</p>
    3. <p>
    4. <input type="checkbox" name="zutat" value="1"> Salami<br>
    5. <input type="checkbox" name="zutat" value="2"> Pilze<br>
    6. <input type="checkbox" name="zutat" value="3"> Sardellen
    7. </p>
    8. </form>

    ??

    Gruß
    Holger

    Broken Sword schrieb:

    w00t ^^
    Hmmm, also nagel mich nicht darauf fest, aber eigentlich kann dann nur das Problem sein, dass du keine "value"-Attribute benutzt.
    Bsp. <option value="hallo">asdad</option>

    Gruß
    Broken Sword


    das heißt ? an welcher stelle soll ich das Value einsetzen ?
    sorry wenn ichs net so ganz blick =))

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Broken Sword () aus folgendem Grund: Doppelpost - Keine Vollzitate!

  • Broken Sword schrieb:

    w00t ^^
    [...]aber eigentlich kann dann nur das Problem sein, dass du keine "value"-Attribute benutzt.
    Bsp. <option value="hallo">asdad</option>


    jip, wo er´s sagt... klar

    denn das, was zwischen den <option> steht, is ja letztendlich nur das, was dem benutzer angezeigt wird, und hat auf "gesendete daten" keinen einfluss.

    edit:

    na mach einfach aus

    Quellcode

    1. <option>LF 8/6</option>
    2. <option>LF 16 TS</option>
    3. <option>LF 8/18</option>
    4. <option>SW 2000</option>
    5. <option>MTF</option>


    das:

    Quellcode

    1. <option value="LF 8/6">LF 8/6</option>
    2. <option value="LF 16 TS">LF 16 TS</option>
    3. <option value="LF 8/18">LF 8/18</option>
    4. <option value="SW 2000">SW 2000</option>
    5. <option value="MTF">MTF</option>
  • ok quelltext hab ich abgeändert
    Er überträgt aber immer "nur" die erste auswahl. Ich hab auch "print_r($_POST['ekraefte']); exit;" dahinter gesetzt wie vorher auch gehts nur so....

    ich probiers mal noch mit checkboxen aus

    wenn ich checkboxen nehme wird gar nichts übertragen ?!

    das komische ist davor hab ich das mit einem normalen textfeld gemacht das ging einwandfrei.

    Nun wollte ich das aber vereinfachen das man nur feste auswahlen hat und sich nicht vertippen kann oder so !

    Ich hab echt kein schimmer mehr was ich noch machen kann !!

    Danke für die Antworten !

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Broken Sword () aus folgendem Grund: Doppelpost

  • Bitte beachte unsere Boardregeln, die Doppelposts und Vollzitate verbieten!
    ----
    @checkboxes:
    Du musst natürlich auch den Array-Trick anwenden ;)
    Bsp.

    Quellcode

    1. <input type="checkbox" name="zutat[]" value="Salami" id="labelsalami" /> <label for="labelsalami">Salami</label><br />


    @selectbox:
    Poste doch bitte mal den Code, denn das muss einfach funktionieren. Viele auch ich habe das schon hundert mal gehabt.
    comment: Die großen Browser haben als value, wenn das Attribut fehlt, den Wert, der zwischen den option Parametern steht. (Hab das gerade ausprobiert) Darum sollte das eigentlich auch funktionieren.

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • Broken Sword schrieb:


    @checkboxes:
    Du musst natürlich auch den Array-Trick anwenden ;)
    Bsp.

    Quellcode

    1. <input type="checkbox" name="zutat[]" value="Salami" id="labelsalami" /> <label for="labelsalami">Salami</label><br />


    meinst du kannst mir den text mit den checkboxen schnell umschreiben das wäre echt cool =)!! weil wenn ich ein fehler reintipp und es geht net stinkt das !!
    wenn du den quelltext nochmal brauchst schreib einfach fix

    danke schonmal

    Holger

    ach ja bevor ich das vergesse ich hatte den " array trick" schonmal angewand die ausgabe war dann "array"...

    und sorry für die vollzitate =( kommt nicht wieder vor!

    so siehts jetzt aus:

    HTML-Quellcode

    1. <tr><td colspan="4">Einsatzkräfte</td></tr>
    2. <tr><td colspan="4">
    3. <p>
    4. <checkbox name="ekraefte[]" size="1">
    5. <input type="checkbox" name="ekraefte[]" value="LF 8/6" id="LF 8/6" /> <label for="LF 8/6">LF 8/6</label><br />
    6. <input type="checkbox" name="ekraefte[]" value="LF 16 TS" id="LF 16 TS" /> <label for="LF 16 TS">LF 16 TS</label><br />
    7. <input type="checkbox" name="ekraefte[]" value="LF 8/18" id="LF 8/18" /> <label for="LF 8/18">LF 8/18</label><br />
    8. <input type="checkbox" name="ekraefte[]" value="SW 2000" id="SW 2000" /> <label for="SW 2000">SW 2000</label><br />
    9. <input type="checkbox" name="ekraefte[]" value="MTF" id="MTF" /> <label for="MTF">MTF</label><br />
    10. </select>
    11. </p>
    12. </td></tr>
    Alles anzeigen


    so aber wenn ers überträgt kommt als ausgabe array

    p.s ich hoff ich hab diesmal nix falsch gemacht beim editieren

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von ho2220 () aus folgendem Grund: Doppelpost

  • ho2220 schrieb:


    so aber wenn ers überträgt kommt als ausgabe array


    das sieht doch schon gut aus... is klar, das da nen array zurückkommt, bzw übertragen wird. den musst du halt noch "auslesen"

    Quellcode

    1. foreach ($array as $value) {
    2. echo "Wert: $value<br />\n";
    3. }


    wenn du alles davon als ein string haben willst, hängst das halt anstatt dem echo alles aneinander. nach dem schema, wie du deine $etext bzw $depp fehlermeldung zusammengesetzt hast...

    edit: hab dir hier ma aufgemalt, wie ich das meine...
    link gelöscht, da erledigt



    mfg

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von mruniverse ()

  • Also ich wollte mich nochmal Bedanken für alle die dabei geholfen haben das Problem zu lösen...

    Zum schluss hat mruniverse das Problem gelöst !!!!
    Danke nochmal!

    Eingefügt wurde folgendes:

    Quellcode

    1. foreach($_POST['ekraefte'] as $value)
    2. {
    3. $ausgabe .= $value.", ";
    4. }
    5. $ekraefte = substr ( $ausgabe, 0, -2 );
    6. #$ekraefte = $_POST["ekraefte[]"];
  • naja...dafür wurde auch eine zeile rausgenommen ;)
    und die letzte zeile mit dem # davor is ja eh nur als kommentar...würde ich an deiner stelle auch rausnehmen... weil, ich glaub das steht sonst so im quelltext drin... kein plan, inwieweit das manch einer ausnutzt... :P

    ps: änder doch noch den präfix (falls das hier nötig und möglich is) das das thema feddisch is...

    mfg und noch schön tach...