Preluare valori din Option Select html

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Stefan
Mesaje: 117

Preluare valori din Option Select html

Salut, cum as putea prelua datele din optiunea selectata de un utilizator ?

Cod: Selectaţi tot

<?php 
if (empty($_POST) === false) {
            else // Altfel, daca totul s-a efectuat cu succes, se executa codul
            {
                // Facem update la user-ul respectiv schimbandu-i numarul de avertizari
                    mysql_query("UPDATE `utilizatori` SET `avertizari` = `avertizari` + NUMAR PUNCTE, `motiv_avertizare` = MOTIVUL' WHERE `username` = '". $_POST['username'] ."'");
                    
                <div class="alert alert-success">
                    <strong>Succes!</strong> Utilizatorul a fost avertizat! Motivul: MOTIV 
                </div>';
            exit();
        }
?>
<li>
            <label class="control-label col-sm-2">Motiv:</label>
            <?php
            $con = mysqli_connect("localhost", "root", "", "db");
            $sql = "SELECT * FROM `motive avertizari`";
            if($result = mysqli_query($con, $sql)) {
                if(mysqli_num_rows($result) > 0) {
                    echo '
                    <div class="col-sm-4">   
                        <select class="form-control" required>
                            <option value="" >Alege motivul..</option>';
                    while($row = mysqli_fetch_array($result)) {
                        echo "
                        <option>" . $row['motiv'] . " (" . $row['puncte'] ." puncte)</option>";
                    }
                    echo "
                        </select>
                    </div>";
                    // Close result set
                    mysqli_free_result($result);
                }
            }
            ?>
        </li>
        <li>
            <input type="submit" class="btn btn-default" value="Avertizeaza">
        </li>
La campul "motiv" am 3 variante si la fiecare este precizata motivul iar in paranteza numarul de puncte, cum as putea sa preiau datele din optiunea selectata (motivul si punctele) ?

MarPlo Mesaje: 4343
Salut
La tag-ul <select> se adauga un "name" prin care se va putea prelua valoarea din optiunea selectata acolo unde e trimis formularul.
La tag-ul <option> se adauga "value" cu valoarea care vrei sa fie transmisa de acea optiune.
Cam asa sa fie acel <select> cu motiv si puncte:

Cod: Selectaţi tot

<select name="un_nume" class="form-control" required>
<option value="">Alege motivul</option>
<option value='". $row['motiv'] .'^'. $row['puncte'] ."'>" . $row['motiv'] . " (" . $row['puncte'] ." puncte)</option>
</select>
- La <option> cele 2 valori care vrei sa fie adaugate sunt separate prin caracterul "^", motiv^puncte.
Apoi, ca sa separi acele valori din optiunea selectata intr-un script php unde e trimis form-ul, se foloseste explode():

Cod: Selectaţi tot

$mot_pnt = explode('^', $_POST['un_nume']);
//Test
echo $mot_pnt[0];  //motivul
echo $mot_pnt[1];  //punctele 
In javascript se poate face acea separate cu functia split().

Cod: Selectaţi tot

var mot_pnt = valoare_selectata.split('^');
//test
alert(mot_pnt[0]);  //motivul

Subiecte similare