可能重复:
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']));
?>
我的萤火虫的截图:
答案 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'])