传递javascript数组值以使用PHP链接和检索它

时间:2013-01-24 00:07:54

标签: php javascript arrays get

  

可能重复:
  Reference: Why does the PHP code in my Javascript not work?

输出总是bool(false)即使我已经检查了一些复选框,我不知道出了什么问题。

到目前为止,这是我尝试的内容

这是我的代码:

    <a onclick="href='wp-content/themes/twentyelevenchild/addmarked.php?asin=<?php echo serialize('+asinValues+')?>'" class="addmarkeditems fancybox.ajax">Save Test 2</a>
</form>
<div id="results"></div>
<script type="text/javascript">
    var asinValues = $('input[name=checkboxlist]:checked').map(function(){
        return $(this).val();
    }).get();
</script>

addmarked.php

<?php 
var_dump(unserialize($_GET['asin']));
?>

我的萤火虫的截图:

enter image description here

2 个答案:

答案 0 :(得分:2)

我快速举例说明了您可能正在寻找的内容:

http://jsfiddle.net/ithcy/X3Ecx/2/

您的addmarked.php应该可以使用explode(",", $_GET["asin"])或类似内容对所有选中的复选框的值执行操作。

答案 1 :(得分:1)

假设您添加了丢失的回音:

<?php echo serialize('+asinValues+')?>

这完全不符合你的想法。你不能像这样混合PHP和JS,因为PHP首先在服务器上执行,如果碰巧生成JavaScript,它将在生成的客户端上执行。

那么,PHP在这里做什么?使用加号和字母序列化字符串:'+asinValues+'。序列化它看起来像:s:12:"+asinValues+";

所以HTML / JS就是:

<a onclick="href='wp-content/themes/twentyelevenchild/addmarked.php?asin=s:12:"+asinValues+";'" class="addmarkeditems fancybox.ajax">Save Test 2</a>

由于PHP的反序列化没有JS副本,因此您需要另一种序列化方法。 JSON是个好主意:

<强>的JavaScript

'...?asin=' + JSON.stringify(asinValues)

<强> PHP

json_decode($_GET['asin'])