如何在Post PHP中检索选择值?

时间:2019-07-05 14:02:18

标签: javascript php jquery json

我有两个通过js函数相互链接的选择,我想在php后的文件中检索这两个选择中选择的值以显示它们

var combi = {};
var infoPrix;

let index = $('#form input:not([type="submit"]').length / 3;


<!-- Fonction pour récupérer les infos des bdds -->
function getTable(table) {
    console.log(table);

    $.ajax({
        url: "http://127.0.0.1/Dylan/json.php?table=" + table,
        cache: false,
        dataType: "json",
        type: "GET",
        <!-- data : 'localisation=' + infoPrix, -->
        success: function (result, success) {
            console.log('succes', result)
            infoPrix = result;
            var testInfo = {};
            var loca = {};
            var descr = '<input name="newprix" type="text" id="srt" readonly>';
            var actions = '<button type="button" name="remove" id="btn" class="btn btn-danger btn_remove">X</button>';
            var commentaires = '<textarea name="commentaires" id="commentaires" rows="10" cols="50" maxlength="85"></textarea>';


            // CELUI A MODIFIER
            var options = '<FORM><TR><TH><b>Choississez une option 1 </b>:</TH></TR><TR><TD><select required name="option1" onChange="Choix(this.form, :::index:::)"><OPTION> </OPTION><option>Néoprène</option><option>Accroc</option></SELECT></TD><TD><br> <TH><b>Option 2  :</b></TH><SELECT name="Options2"  class="Options2"  onChange="run(:::index:::)" ></SELECT></TD></TR></FORM><br><b>Option 3</b> : Couture : <br><input class="input1" data-index=":::index:::" name="couture" type="text" value="" placeholder="Tapez ici le nombre de cm à réparer" onclick="multiplie(:::index:::)"/>';


            for (var i = 0; i < infoPrix.length; i++) {
                combi[infoPrix[i].Localisation] = infoPrix[i];
                combi[infoPrix[i].Localisation].localisation = infoPrix[i].Localisation; //A récupérer
                combi[infoPrix[i].Localisation].garantie = infoPrix[i].Garantie; //A récupérer
                combi[infoPrix[i].Localisation].prix = infoPrix[i].Prix; //A récupérer
                combi[infoPrix[i].Localisation].commentaires = commentaires;
                // combi[infoPrix[i].Localisation].options2=options2;
                combi[infoPrix[i].Localisation].options = options;
                combi[infoPrix[i].Localisation].actions = actions;
            }

            console.log('test info:', combi);
        },
        error: function (result, success) {
            console.log('failure')
        }
    });
}


//FONCTION POUR LES MENUS DEROULANTS
function Choix(form, ind) {


    let valeur = +($(`[data-id="${ind}"] .prix`).text());

    i = form.option1.selectedIndex;
    if (i == 0) {
        form.Options2.innerHTML = "<option></option>";
        form.Options2.options[0].text = "--- Choisissez une option 2 ---";
        return;
    }


    let txt;
    switch (i) {
        case 1:
            txt = {
                "Panneau entier": valeur,
                "Demi panneau": "",
                "Empiècement < 5cm": "20",
                "Empiècement > 5cm": "40"
            };
            break;
        case 2:
            txt = {
                "Empiècement < 5cm": "20",
                "Empiècement > 5cm": "40"
            };
            break;
    }

    // Error catching si jamais on rajoute un élément au premier tableau et qu'on l'oublie dans le deuxième
    if (!txt) {
        return console.error('[E] Unknown first select value');
    }

    form.Options2.innerHTML = "<option></option>";
    form.Options2.options[0].text = "--- Choisissez une option 2 ---";
    form.Options2.selectedIndex = 0;
    for (var key in txt) {
        var value = txt[key];
        // Création de l'élément
        const el = document.createElement("option");
        // Population des champs
        el.text = key;
        el.value = value;

        // Ajout seulement lorsque l'élément est complétement prêt
        form.Options2.appendChild(el);
    }
}


function addRow(combi) {


    //On ajoute autant les cellules
    const localisation = combi.localisation;
    const garantie = combi.garantie;
    const id = `prixmultiplie_${index}`;
    const prix = combi.prix;
    // const commentaires = combi.commentaires;


    const tr = $('<tr>').attr('data-id', index);

    $(tr).append($('<td>').html(localisation));
    $(tr).append($('<td>').html(combi.options.replace(/:::index:::/g, index)));
    $(tr).append($('<td>').html(garantie));
    $(tr).append($('<td>').attr('id', id).attr('class', 'prix').html(prix));
    $(tr).append($('<td>').html(combi.commentaires));
    $(tr).append($('<td>').html(combi.actions));


    $('#form').append($(`<br />`));

    console.log('localisation :', localisation);
    console.log('prix :', prix);
    console.log('garantie :', garantie);


    $('#form').append($(`<input type="hidden" name="localisation[${index}]" id="localisation" value="${localisation}" />`));
    $('#form').append($(`<input type="hidden" name="prix[${index}]" id="prix" value="${prix}" />`));
    $('#form').append($(`<input type="hidden" name="garantie[${index}]" id="garantie" value="${garantie}" />`));
    // $('#form').append($(`<input type="hidden" name="Options2[${index}]" id="Options2" value="${Options2}" />`));
    // $('#form').append($(`<textarea  style="display:none;" name="commentaires" id="commentaires"  value="${commentaires} </textarea>`));  
    $('#tableau').append(tr);

    index++;
}


//FONCTION POUR AFFICHER UN PRIX DANS UN INPUT DEPUIS UN MENU DEROULANT
function run(ind) {

    document.getElementById("prixmultiplie_" + ind).innerHTML = $(`[data-id="${ind}"] .Options2`).val();


    // valeur = +($(`[data-id="${ind}"] .prix`).text());
    // console.log(valeur);

}

我想在我的PHP页面上检索Selects“ option1”和“ Options2”中包含的值:

    $prix = isset($_POST['prix'][$val]);

$options = ["$prix1" => "Panneau entier", "" => "Demi panneau", "20" => "Empiècement < 5cm", "40" => "Empiècement > 5cm"];

$value = $options[$_POST['Options2']];

echo $value;

0 个答案:

没有答案