Checkbox - Auswahl wird ignoriert.

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

  • Checkbox - Auswahl wird ignoriert.

    Hallo!

    Ich möchte nur den "Checkbox"-Wert, den ich ausgewählt habe, per $_Post übergeben und die Werte in die Datenbank schreiben.

    Leider greift die Auswahl nicht und zeigt immer alle Tabelleneinträge an.

    PHP-Code:
    while ($row = sqlsrv_fetch_array($result_list)) 
    {
    ?>
    <script language="JavaScript" type="text/JavaScript">
    $(document).ready(function() {    
    $("#<?php echo "post" $i ""?>").change(function () {
    $("#<?php echo "hidden" $i ""?>").toggle();
    });
    })                                                            
    </script>

    <?php                                                        
    $bestelldat 
    $row['dErstellt'];
    $datum_bestell date_format($bestelldat'd.m.Y'); 
    $artikelnr $row['cArtNr'];
    $artikelpreis round($row['fVKPreis'], 2);
    $artikelanz round($row['nAnzahl'], 2);
    $artikelbez $row['cString'];
    $datum_we date("d.m.Y");    
                                                       
    echo 
    "<table width='100%' border='0' cellpadding='0' cellspacing='0'>"
    echo 
    "<tr onmouseover=this.style.background='green'; onmouseout=this.style.background='';>";
    echo 
    "<td width='10%'><input type='checkbox' name='select_artikel[]' value='" $i "'></td><td width='15%' align='left'>$artikelnr</td><input type='hidden' name='select_artikel[]' value=" $artikelnr "><td width='15%'>$datum_bestell</td><input type='hidden' name='select_artikel[]' value=" $datum_bestell "><td width='15%'>$artikelpreis</td><input type='hidden' name='select_artikel[]' value=" $artikelpreis "><td width='15%' >$artikelanz</td><input type='hidden' name='select_artikel[]' value=" $artikelanz "><td width='30%' >$artikelbez</td><input type='hidden' name='select_artikel[]' value=" $artikelbez "></a>"
    echo 
    "</tr>";
    echo 
    "</table>";
                                                                    
    echo 
    "<table width='100%' id='hidden" $i "' style='display:none; padding:10px;' bgcolor='lightgrey'>";
    echo 
    "<tr>";
    echo 
    "<td>WE-Datum:</td><td align='left'><input name='select_artikel[]' type='text' size='8' value=" $datum_we "></td>";
    echo 
    "<td>Grund:</td><td align='left'><input name='select_artikel[]' type='text' size='50' value=''></td>";
    echo 
    "<td>Status-Auftrag:</td><td><select name='select_artikel[]' type='text'><option selected='selected' >Bitte Auftrag-Status vergeben!</option><option></option><option>Retoure + Neuversand - ArtNr. Wawi 9005</option><option>Retoure - ArtNr. Wawi 9006</option></select></td>";
    echo 
    "</tr>";
    echo 
    "<tr>";
    echo 
    "<td>Status-Ware:</td><td align='left'><select name='select_artikel[]' type='text' onchange='option(this[this.selectedIndex].value)'><option selected='selected'>Bitte Waren-Status vergeben!</option><option></option><option>Einlagern</option><option>Retourenlager</option><option>Markt</option><option value='sonstiges" $i "'>Sonstiges</option></select></td>";
    echo 
    "<td>Rückerstattung Käufer:</td><td align='left'><select name='select_artikel[]' type='text'><option selected='selected' >Bitte wählen!</option><option></option><option>Ja</option><option>Nein</option></select></td>";
    echo 
    "<td>Zahlungsweise:</td><td align='left'><select name='select_artikel[]' type='text'><option selected='selected' >Bitte wählen!</option><option></option><option>Paypal</option><option>Überweisung</option></select></td>";                                                                
    echo 
    "</tr>";                                                                
    echo 
    "</table>";
                                                                    
    echo 
    "<table style='display:none' width='100%' border='0' cellpadding='0' cellspacing='0' id='sonstiges" $i "' bgcolor='lightgrey'>";
    echo 
    "<tr>";
    echo 
    "<td width='7%'>Sonstiges:</td><td align='left'><input name='select_artikel[]' type='text' size='50' value=''/></td>";
    echo 
    "<td></td><td></td><td></td><td></td>";    
    echo 
    "</tr>";                                                                
    echo 
    "</table>";                                                                               

    $i++;             
    }

    // Abfrage mit

    if(isset($_POST['select_artikel'])){
      if (
    is_array($_POST['select_artikel'])) {
        foreach(
    $_POST['select_artikel'] as $value){
          echo 
    $value;
        }
      } else {
        
    $value $_POST['select_artikel'];
        echo 
    $value;
      }
    }
    Wie kann ich es erreichen, das er mir nur den, oder die Werte übergibt, die ausgewählt wurden.

    Danke.

  • #2
    Wenn ich mir deinen Code anschaue weiß ich nicht ob du noch ansatzweise eine Vorstellung davon hast, was dein Code eigentlich macht. Wahrscheinlich ist deine Aufgabenstellung deutlich einfacher zu lösen.

    Da fällt z.B auf, dass du Inputs vom Typ checkbox und hidden sowie select-felder allesamt mit "select_artikel[]" benennst und die Felder aber unterschiedlichste Daten beinhalten/aufnehmen können. Wie willst du hier nach dem Posten des Formulars in der Verarbeitung erkennen, was davon eigentlich ein Wert aus einer Checkbox war?

    Dein dynamisch erstellter jQuery-Block scheint mir übrigens gar nichts zu bewirken. Sieh dir dazu einfach mal den generierten Quellcode an und überlege ob du damit tatsächlich ein Element aus dem Dom ansprichst.
    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
    Schön - etwas Geschichte kann ja nicht schaden.
    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

    Kommentar


    • #3
      Zitat von Quetschi Beitrag anzeigen
      Wenn ich mir deinen Code anschaue weiß ich nicht ob du noch ansatzweise eine Vorstellung davon hast, was dein Code eigentlich macht. Wahrscheinlich ist deine Aufgabenstellung deutlich einfacher zu lösen.

      Da fällt z.B auf, dass du Inputs vom Typ checkbox und hidden sowie select-felder allesamt mit "select_artikel[]" benennst und die Felder aber unterschiedlichste Daten beinhalten/aufnehmen können. Wie willst du hier nach dem Posten des Formulars in der Verarbeitung erkennen, was davon eigentlich ein Wert aus einer Checkbox war?

      Dein dynamisch erstellter jQuery-Block scheint mir übrigens gar nichts zu bewirken. Sieh dir dazu einfach mal den generierten Quellcode an und überlege ob du damit tatsächlich ein Element aus dem Dom ansprichst.
      Entschuldigung, das hilft mir jetzt wirklich nicht weiter...

      Kommentar


      • #4
        Zitat von Quetschi Beitrag anzeigen
        Da fällt z.B auf, dass du Inputs vom Typ checkbox und hidden sowie select-felder allesamt mit "select_artikel[]" benennst und die Felder aber unterschiedlichste Daten beinhalten/aufnehmen können. Wie willst du hier nach dem Posten des Formulars in der Verarbeitung erkennen, was davon eigentlich ein Wert aus einer Checkbox war?
        Wenn man nur ein bisschen drüber nachdenken würde was einem geschrieben wird, dann käme man vielleicht auf die Idee seine Formularfelder sinnvoll zu benennen, damit man anschließend vernünftig damit arbeiten kann.
        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
        Schön - etwas Geschichte kann ja nicht schaden.
        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

        Kommentar


        • #5
          Das habe ich verstanden, aber ich erkenne den weiteren Verlauf nicht, wie erkläre ich dem Checkbox-Feld, das die jeweiligen Einträge und Ausgaben zu ihm gehören, über einen gemeinsamen Value?

          Kommentar


          • #6
            Ein mehrdimensionales Array würde sich hier anbieten - mit einem einheitlichen Index für jedes Artikel-"Unterarray" und vernünftig benannten Indexen für die jeweiligen Felder.

            PHP-Code:
            <input type='checkbox' name='select_artikel[nr".$i."][checked]' value='ja'>
            <
            input type='hidden' name='select_artikel[nr".$i."][artikelnr]' value=" . $artikelnr . "
            In der weiteren Verarbeitung kann das dann so aussehen:

            PHP-Code:
            foreach($_POST["select_artikel"] as $artikel)
            {
                if(
            $artikel["checked"] == "ja")
                {
                    
            //deine Ausgabe...
                
            }

            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar


            • #7
              Recht herzlichen DANK

              Kommentar

              Lädt...
              X