首页 > 解决方案 > Jquery Ajax html(多选)

问题描述

我正在寻找一些简单的东西。我必须通过 jquery 将值从表单 html 传递到文件 PHP。我尝试此代码,结果为零。如果有人能说我哪里弄错了。谢谢

对于 JQUERY

$('#Save').click(function(){

    var realvalues = new Array();//storing the selected values inside an array
    $('#Privilege[] :selected').each(function(i, selected) {
        realvalues[i] = $(selected).val();
    });

    $.ajax({
        type: "POST",
        url: "test5.php",
        data: {"Privilege[]": realvalues},
        success:function(data){
                $("#subscrres").html(data)
            }
    });
});

对于 HTML

<form method="post">
<select id="Privilege[]" multiple>
<option value="yahoo">yahoo</option>
<option value="chrome">chrome</option>
<option value="mozilla">mozilla</option>
</select>
<input type="button" id="Save" Value="SEND"/>

对于 PHP。内容文件 test5.php

if(isset($_POST['Privilege'])){
$myvar  =$_POST['Privilege'];
foreach($_POST['Privilege'] as $one)
echo $one."<br/>";

}

我没有收到任何关于 PHP 的信息。有人可以帮助我吗?

标签: phpjqueryformsinput

解决方案


如果您尝试使用 id 访问多选元素,则不需要设置 id like Privilege[],您可以设置任何唯一身份,privilege-selector但如果您为任何多选元素提供名称,则名称必须像Privilege[]

这是html:

<form id="form" method="post">
    <select id="privilege-selector" multiple>
       <option value="yahoo">yahoo</option>
       <option value="chrome">chrome</option>
       <option value="mozilla">mozilla</option>
    </select>
    <input type="button" id="Save" Value="SEND"/>
</form>

请检查以下ajax请求以将所选数据发布到服务器

$("#Save").on("click",function(){
    var selection = [];
    $.each($("#privilege-selector option:selected"),function(index,element){
        selection.push($(element).val());
    })
    $.ajax({
        url : "test5.php",
        type : "POST",
        data : {Privilege:selection},
        success : function(_response){
           var res = JSON.parse(_response);
           if(res.code == "1"){
             console.log(res.data);
           } else {
             alert(res.message);
            }
        }
    })
});

这是您的服务器文件,它将处理传入的请求数据

$serverResponse = [];
if(isset($_POST['Privilege']) && !empty($_POST['Privilege'])){
    $formattedData = [];
    foreach($_POST['Privilege'] as $key => $value){
        $formattedData[] = array(
            "id" => $key+1,
            "name" => $value
        );
    }
    $serverResponse = ["code"=>"1","message"=>"formatted data","data"=>$formattedData];
} else {
    $serverResponse = ["code"=>"0","message"=>"Please select at least on value"];
}
echo json_encode($serverResponse);

推荐阅读