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

  • hessebou
    hat ein Thema erstellt Tabelle mit Checkboxen.

    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

  • hessebou
    antwortet
    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

    Einen Kommentar schreiben:


  • lazydog
    antwortet
    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.

    Einen Kommentar schreiben:


  • hessebou
    antwortet
    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

    Einen Kommentar schreiben:


  • lazydog
    antwortet
    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.

    Einen Kommentar schreiben:


  • hessebou
    antwortet
    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

    Einen Kommentar schreiben:


  • Daniel
    antwortet
    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)

    Einen Kommentar schreiben:


  • lazydog
    antwortet
    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.

    Einen Kommentar schreiben:

Lädt...
X