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

时间:2015-01-23 14:22:00

标签: javascript php jquery html ajax

我从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添加了代码,如果我选择2个复选框,而不是在第一个alert1 var1:option1,和第二个警告 VAR1:选项1,VAR2:选项2,

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

但是在PHP脚本中它没有回应请检查...

php脚本:

<?php 

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

echo $var1;
echo $var2;

?>

我有上面的代码..通过复选框选择选项,现在我必须通过ajax调用和php脚本中的echo将所选变量传递给php变量..

例如:如果我选择选项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;

?>

2 个答案:

答案 0 :(得分:0)

您可以获取所有选定选项的值,如下所示:

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

或在多选列表上使用.val()函数将返回所选值的数组:

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

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

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

其中&#39; arr [0]&#39;是第一个选择的选项值,同样如此。

已编辑的代码:

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;

?>

希望这会对你有所帮助。感谢

答案 1 :(得分:0)

好的,我们走了。根据我的理解,你有一个多选,并希望推送所有在数组中选择的值,并使用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.
}

希望它对你有所帮助。