php
  • html
  • 2016-12-28 1 views 1 likes 
    1

    Ich habe ein kleines Problem.Fehler erhalten, wenn Post Wert

    <select name="level_id"> wird nicht veröffentlicht. So bekomme ich einen Fehler wie: Undefined index : level_id

    Genau was kann ich tun?

    $sql1 = 'SELECT T_ABILITY.PK AS AB_PK,T_ABILITY.ABILITY_NAME AS AN,T_ABILITY_LEVEL.PK AS LE_PK,T_ABILITY_LEVEL.LEVEL_NAME AS LN 
    FROM T_USER_ABILITY_REL,T_ABILITY,T_ABILITY_LEVEL WHERE 
    T_USER_ABILITY_REL.ABILITY_FK = T_ABILITY.PK AND 
    T_USER_ABILITY_REL.ABILITY_LEVEL_FK = T_ABILITY_LEVEL.PK AND 
    T_USER_ABILITY_REL.USER_FK = '.$user_id.' 
    ORDER BY AN'; 
    $stmt1 = oci_parse($conn, $sql1); 
    $r1 = oci_execute($stmt1); 
    while ($row1 = oci_fetch_array($stmt1, OCI_RETURN_NULLS + OCI_ASSOC)) { 
        echo '<form method="post">'; 
        echo '<tr>'; 
        echo '<td>'.$row1["AN"].'</td>'; 
        echo '<input type="hidden" name="ability_id" value="'.$row1["AB_PK"].'"/>'; 
        echo '<td class="select-level">'; 
        $sql2 = 'SELECT PK,LEVEL_NAME FROM T_ABILITY_LEVEL ORDER BY LEVEL_ORDER'; 
        $stmt2 = oci_parse($conn, $sql2); 
        $r2 = oci_execute($stmt2); 
        echo '<select name="level_id" class="form-control selectpicker" data-container="body" data-live-search="true" data-size="5" title="Seviye Seçiniz">'; 
        while ($row2 = oci_fetch_array($stmt2, OCI_RETURN_NULLS + OCI_ASSOC)) { 
        echo '<option '.($row2["PK"] == $row1["LE_PK"] ? 'selected="selected"' : "").' value="'.$row2["PK"].'">'.$row2["LEVEL_NAME"].'</option>'; 
        } 
        echo '</select>'; 
    
        echo '<button type="submit" name="update-user-ability" class="btn btn-success">Güncelle</button>'; 
        echo '<button type="submit" name="delete-user-ability" class="btn btn-danger">Sil</button>'; 
        echo '</td>'; 
        echo '</tr>'; 
        echo '</form>'; 
    } 
    

    einreichen Teil unter

    if (isset($_POST["update-user-ability"])) { 
    
        $user_id = $_GET["user_id"]; 
        $ability_id = $_POST["ability_id"]; 
        $level_id = $_POST['level_id']; 
    
    +0

    Dieser Teil des Codes ist ohne Ihre Fehlermeldung Probleme. Zeigen Sie uns den Code, auf den Sie den Array-Index 'level_id' verweisen. –

    +0

    Ich habe den Submit-Part –

    +0

    hinzugefügt. Ihr HTML ist nicht gültig. Sie haben die 'fähigkeits_id' Eingabe in der Tabelle, aber nicht innerhalb' '. – Barmar

    Antwort

    -1

    sein könnte, dass der Wert von level_id wird mitschicken nicht, weil es ein <select> ist. Nicht sicher, aber könnte sein, dass nur <input /> Werte richtig gepostet werden.

    Sie können einen <input type="hidden" name="level_id_val" /> verwenden und den Wert jedes Mal mit JavaScript aktualisieren, wenn der Wert <select name="level_id"> geändert wird (unter Verwendung von).

    Dann in PHP, verwenden Sie das Feld anstelle der Auswahl: $level_id = $_POST['level_id_val'];

    +0

    Danke, dass es funktioniert –

    +0

    Auswählen ist so gut ein Element für ein Formular wie jedes andere Formularelement. In der Tat kann man mit js den Wert eines versteckten Inputs aktualisieren, aber das ist definitiv nicht der richtige Weg. –

    +0

    @ FélixGagnon-Grenier lass mich dich nicht stoppen, um wirklich konstruktiv zu sein und uns zeigen, was * ist * der richtige Weg – myfunkyside

    0

    Dies liegt daran, Ihre Auswahl leer ist (das heißt, die oci_fetch_array($stmt2, OCI_RETURN_NULLS + OCI_ASSOC kehrt keine Zeilen.)

    A wählen, wenn keine Option vorhanden sind, wird kein Wert an das empfangende PHP-Skript zurückgegeben.

    Fügen Sie eine Standardoption vor der Schleife hinzu, um sicherzustellen, dass etwas übergeben wird, selbst wenn Ihre SQL-Abfrage nichts zurückgibt.

    dieses Skript einen leeren Post zurück:

    <html> 
    <body> 
    <form method="post"> 
        <select name="select"></select> 
        <input type="submit"> 
    </form> 
    </body> 
    </html> 
    <?php 
    var_dump($_POST); // array(0) { } 
    

    während dieser den Wert 12 definiert haben:

    <html> 
    <body> 
    <form method="post"> 
        <select name="select"> 
         <option value="12">12</option> 
        </select> 
        <input type="submit"> 
    </form> 
    </body> 
    </html> 
    <?php 
    var_dump($_POST); // array(1) { ["select"]=> string(2) "12" } 
    
    Verwandte Themen