Ankündigung

Einklappen
Keine Ankündigung bisher.

Tabelle mit Checkboxen

Einklappen

Neue Werbung 2019

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

  • Tabelle mit Checkboxen

    Hallo,

    ich bin neu hier und ebenfalls auf dem Gebiet PHP relativ neu. Habe zwar vor einiger Zeit mal was damit gemacht, aber wie es immer ist wenn man es nicht laufend macht, man vergisst vieles schnell. Ich habe eine DB mit Druckern und folgenden Feldern "ID, SERVER; SHARE; DESCRIPTION und LOCATION". Auslesen klappt wunderbar. Das ganze wird in einer Tabelle mit einer Checkbox am Ende dargestellt. Ich möchte über diese Seite Drucker installieren lassen mit dem Befehl
    PHP-Code:
    $outputs = `rundll32 printui.dll,PrintUIEntry /in /n \\\\SERVER\\SHARE`;
    echo 
    "<pre>$outputs</pre>"
    Das klappt auch bei einem einzel Aufruf wunderbar, nun möchte ich anhand eines Einbinden Buttons am Ende der Tabelle alle "checkt" makierten Drucker mit diesem Befehl einbinden lassen. Und genau da liegt mein Problem und ich hoffe ihr könnt mir weiterhelfen

    Ich danke euch schon mal vorab.
    Grüße
    Hessebou


  • #2
    Ich verstehe deine Frage nicht ganz. Viellecht zeigst du uns mal was du schon hast. Möglicherweise hast du vergessen, die Checkboxen Als Array's zu benennen.
    Gruss
    L

    Kommentar


    • #3
      Du musst die folgendermaßen definieren:

      Code:
      <input type="checkbox" name="printers[]" value="xyz" />
      Dann sind alle ausgewählten Drucker im Array $_POST['printers'] vorhanden.

      (Oder je nach deiner method auch $_GET)
      Je mehr ich lerne, desto mehr wird mir bewusst, dass ich eigentlich nichts weiß.

      Kommentar


      • #4
        Zitat von lazydog Beitrag anzeigen
        Ich verstehe deine Frage nicht ganz. Viellecht zeigst du uns mal was du schon hast. Möglicherweise hast du vergessen, die Checkboxen Als Array's zu benennen.
        PHP-Code:
        echo "<form name='printer' method='Post' action='install.php' enctype='multipart/form-data'>";
        echo 
        "<table border=1 width=100%>
            <tr>
                <td>Freigabe</td>
                <td>Beschreibung</td>
                <td>Ort</td>
                <td> </td>
            </tr>
        "
        ;
        $result mysql_query("SELECT * FROM print_printer");
        while (
        $inhalt mysql_fetch_object($result)){;
        echo 
        "

            <tr>
                <td>
        $inhalt->print_share</td>
                <td>
        $inhalt->print_description</td>
                <td>
        $inhalt->print_location</td>
                <td><input type='checkbox' name='printers[]' value='"
        .$inhalt->print_ID."'></td>";
        }
        echo 
        "</tr>
            <td></td><td></td><td></td><td><input type='submit' value='Installieren' name='abschicken'></form></td>"
        ;
        echo 
        "</table>"
        Hier ist mein Code bislang, relativ überschaubar
        Gruss

        Kommentar


        • #5
          Wenn du schon nach der Zeile mit dem while ein Semikolon schreibst, wird natürlich auch keine Schleife ausgeführt (bzw. sie wird zwar ausgeführt, aber macht einfach nichts).
          Den Teil wo du die Daten dann auswertest (install.php), der fehlt noch. Du musst dir einfach merken, dass $_POST['printers'] nun ein Array ist, und in einer Schleife verarbeitet werden muss.
          Gruss
          L

          Kommentar


          • #6
            Zitat von lazydog Beitrag anzeigen
            Wenn du schon nach der Zeile mit dem while ein Semikolon schreibst, wird natürlich auch keine Schleife ausgeführt (bzw. sie wird zwar ausgeführt, aber macht einfach nichts).
            Den Teil wo du die Daten dann auswertest (install.php), der fehlt noch. Du musst dir einfach merken, dass $_POST['printers'] nun ein Array ist, und in einer Schleife verarbeitet werden muss.
            Hi,

            danke soweit. Die Datei "install.php" ist bislang noch leer. Dort sollen die ausgewählten Drucker mit Hilfe einer Schleife aus dem Array gelesen werden und dann mit dem Befehl
            PHP-Code:
            $outputs = `rundll32 printui.dll,PrintUIEntry /in /n \\\\SERVER\\SHARE`;
            echo 
            "<pre>$outputs</pre>"
            weiterverarbeitet werden. Soweit bin ich noch nicht "install.php" besteht bislang nur aus $_POST['printers'] und einem echo um zu schauen ob die Daten ankommen. Funktioniert leider noch nicht so wirkleich.

            Gruss

            Kommentar


            • #7
              Das echo wird dir höchstens «array()» ausgeben. var_dump() oder print_r() wären hilfreicher.
              Da $_POST['printers'] die einzige Variable ist, die du übergibst, musst du die entsprechenden Angaben erneut aus der DB holen. Was du dazu brauchst, kann ich dir nicht sagen, da ich nicht mit MS-Produkten arbeite. Aber einfach als Beispiel:
              PHP-Code:
              $sql "
                  SELECT
                     print_share,
                     print_name
                  FROM
                      print_printer
                  WHERE
                      print_ID IN ( " 
              implode(', '$_POST['printers']) . ")"
              liefert dir die Daten zu allen selektierten Druckern.
              Gruss
              L

              Kommentar


              • #8
                Dann sieht das Konstrukt also so aus
                PHP-Code:
                $sql mysql_query("
                    SELECT
                       print_share,
                       print_name
                    FROM
                        print_printer
                    WHERE
                        print_ID IN ( " 
                implode(', '$_POST['printers']) . ")");
                        while (
                $inhalt mysql_fetch_object($sql)){
                echo 
                "
                <table>
                    <tr>
                        <td>
                $inhalt->print_share</td>
                        <td>
                $inhalt->print_description</td>
                        <td>
                $inhalt->print_location</td> 
                    </tr>
                </table>"
                ;

                Darauf erhalte ich allerdings die Meldung
                Code:
                Warning:  mysql_fetch_object(): supplied argument is not a valid MySQL result resource in E:\xampp\htdocs\vhs\printer\install.php on line 19
                Ich begreife es einfach nicht wirklich. Istein Logik Problem bei mir, habe zu lange nicht damit gearbeitet
                -------------------
                Okay, habe das Problem gefunden. Es heißt nicht print_name sondern Print_server

                Kommentar

                Lädt...
                X