如何将 select 复选框值动态传递给 ajax 调用变量 post 到 php 变量动态

How to pass the select check box values dynamically to the ajax call variables post to php variables dynamically

我很高兴 select 来自 eric hanes 的复选框...网站 :

http://www.erichynds.com/examples/jquery-ui-multiselect-widget/demos/

我必须传递 select 从 select html 标签中的 select 选项编辑的值...

    <!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jQuery MultiSelect Widget Demo</title>
<link rel="stylesheet" type="text/css" href="../jquery.multiselect.css" />
<link rel="stylesheet" type="text/css" href="assets/style.css" />
<link rel="stylesheet" type="text/css" href="assets/prettify.css" />
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/ui-lightness/jquery-ui.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js"></script>
<script type="text/javascript" src="assets/prettify.js"></script>
<script type="text/javascript" src="../src/jquery.multiselect.js"></script>

<script type="text/javascript">


$(function(){

    $("select").multiselect();

});

function select_val(){

var str = '';

        $('select[name="example-basic"] :selected').each(function(i, selected){ 
            alert(str += 'var'+(i+1) +':'+ $(selected).val()+','); 
        });

                    $("#fetch").load("select.php",str,function(){});

            }


</script>

</head>
<body id="test">

<p>
    <select title="Basic example" multiple="multiple" name="example-basic" size="5">
    <option value="option1">Option 1</option>
    <option value="option2">Option 2</option>
    <option value="option3">Option 3</option>
    <option value="option4">Option 4</option>
    <option value="option5">Option 5</option>
    <option value="option6">Option 6</option>
    <option value="option7">Option 7</option>
    <option value="option8">Option 8</option>
    <option value="option9">Option 9</option>
    <option value="option10">Option 10</option>
    <option value="option11">Option 11</option>
    <option value="option12">Option 12</option>
    </select>
</p>
<button id="select_val" onclick="select_val()"> Submit </button>
<div id="fetch"></div>
</body>
</html>

@Malik:我已经用你的 javascript 添加了代码,如果我 select 2 个复选框比值在第一个 alert1 [=47 中显示这样=], 并在第二个警报中 var1:option1,var2:option2,

在上面的 var1:option1 和 var1:option1,var2:option2 中,最后一个值的逗号再次重复,请检查并且如果第一个值也只发送一个值但不重复值发送的值比第二个值必须发送后..但不是第一个和第二个值要发送以进行第二次检查...请检查...

但在 PHP 脚本中没有回显,请检查...

php 脚本:

<?php 

$var1= $_POST['var1'];
$var2 = $_POST['var2'];

echo $var1;
echo $var2;

?>

我有上面的代码..这里 select 选项是通过复选框 selected 现在我必须将 selected 变量传递给 php 变量通过 ajax 调用并在 php 脚本中回显..

例如:如果我 select 选项 1 和选项 2,我应该得到选项 1 的警报和第二个警报选项 2..

还有一个帮助...现在这个值必须传递给 ajax 调用并且 ajax 变量必须是动态的...我正在使用 load() ajax函数..

$("#fetch").load("select.php",{var1:var1,var2:var2......},function(){});

这里是如何在 ajax 调用中动态传递复选框变量。

<?php 

$var1= $_POST['var1'];
$var2 = $_POST['var2'];
.
.
.


echo $var1;
echo $var2;

?>

您可以获得所有 selected 选项的值,如下所示:

var arr = []; 
$('select[name="example-basic"] :selected').each(function(i, selected){ 
  arr[i] = $(selected).val(); 
});

或在多 select 列表上使用 .val() 函数将 return 一个 selected 值的数组:

var selectedValues = $('select[name="example-basic"]').val();

通过使用上面的 jQuery 代码,它将以数组格式为您提供值。您可以在其中将该数组传递到 php,如下所示:

$("#fetch").load("select.php",{var1:arr[0],var2:arr[1]......},function(){});

其中 'arr[0]' 是第一个 selected 选项值,依此类推。

编辑代码:

var str = '';
        $('select[name="example-basic"] :selected').each(function(i, selected){ 
           str += 'var'+(i+1) +'='+ $(selected).val()+'&'; 
        });

        $("#fetch").load("select.php",str,function(){});

上面是 javascript 的代码,下面定义了如何在服务器端获取值:

<?php 

$var1= $_GET['var1'];
$var2 = $_GET['var2'];
.
.
.


echo $var1;
echo $var2;

?>

希望这对您有所帮助。谢谢

好的,我们开始吧。根据我的理解,您有一个多选,并且想要推送在数组中选择的所有这些值,并使用 ajax 将其发送到 PHP 文件。这是我想出的:

$('[name=submit]').click(function(e){
    e.preventDefault();
    var array = [];
    $('select :selected').each(function(i,value){
        array[i] = $(this).val();
    });
    //here make your ajax call to a php file
    $.ajax({
        type: "POST",
        url: "path/to/file.php",
        data: { selected_values: array, otherVal: 'something else' }
    });
});

FIDDLE FOR MULTI SELECT

在您的 PHP 页面中,使用:

$array = $_POST['selected_values'];
foreach($array as $key => $value){
    //do something with the key/value.
}

希望对您有所帮助。