【问题标题】:How to pass the select check box values dynamically to the ajax call variables post to php variables dynamically如何将选择复选框值动态传递给ajax调用变量动态发布到php变量
【发布时间】:2015-03-22 14:41:57
【问题描述】:

我从 eric hanes ...网站获得了不错的选择复选框:

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

我必须传递从 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, 和第二个 alert 中显示的值是这样的>var1:option1,var2:option2,

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

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

php 脚本:

<?php 

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

echo $var1;
echo $var2;

?>

我有上面的代码..这里选择选项是通过复选框选择的,现在我必须通过 ajax 调用将选定的变量传递给 php 变量并在 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;

?>

【问题讨论】:

  • 您想添加一个函数处理程序,当“选择”更改时执行并执行您的$("#fetch").load(...。是这样吗?
  • 我真的不明白你想在这里做什么。能给我解释一下吗?
  • 是的,谢谢您的回复...我有选择复选框..现在我想将选定的复选框值发送到 ajax 调用..k 很好,我可以发送..如果值是已知的...比现在这些值是可变的,例如有时可能是 10 或 14 或 40 ...对于每个具有复选框的值..k ...比用户在他的脑海中有一个选定的值,并且选定的值必须发送到 ajax 调用..而不是打印..
  • 我尝试通过获取所选复选框的长度并将值推送到数组中...并在用户端获取警报...但现在我想发送所选复选框。 .到服务器端ie.PHP(我想你知道)..ie..使用ajax调用必须发送...发送变量以在ajax函数中动态获取php脚本中的值数组长度并打印变量。 .like this...我不明白.....请帮助
  • 嗨@Dennis ...让我知道..你有什么解决方案...?请

标签: javascript php jquery html ajax


【解决方案1】:

好的,我们开始吧。据我了解,您有一个多选,并且想要推送在数组中选择的所有这些值,并使用 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.
}

希望对你有帮助。

【讨论】:

  • @MaheshCholleti 如果它现在正在工作,你可以接受我的回答是正确的:)
【解决方案2】:

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

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(){});

其中 'arr[0]' 是第一个选择的选项值,以此类推。

编辑代码:

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;

?>

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

【讨论】:

  • HI ..但这些值是所选选项的动态变化,例如有时会得到 10 和 30 之后……以及 40 之后……和 10 ..取决于数据……发送到该页面中的 select.php 的变量也应该在 javascript 传递中动态获取与数组一致的值,并且在 php 脚本中也动态接受 javascript 值...就像在 php 脚本中...$ var1=$_POST['var1']; $var2= $_POST['var2']....
  • 选中的复选框值每次都会改变..在加载 ajax() 函数中也...必须使用 for 循环动态更改变量还是有其他方法....?
  • @Mahesh 我已经更新了我的答案。请检查并希望这能解决您的问题。谢谢
  • 嗨 @Malik ..请检查代码 ..我已经用你的代码编辑了...它不是 wotking...请检查
  • 在警报值即将到来但是,如何将值从 js 获取到 PHP 脚本...?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-01
  • 1970-01-01
  • 2011-09-15
  • 1970-01-01
  • 1970-01-01
  • 2011-04-27
  • 1970-01-01
相关资源
最近更新 更多