0

可能重复:
参考:为什么我的 Javascript 中的 PHP 代码不起作用?

即使我已经检查了一些复选框,输出也总是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']));
?>

我的萤火虫截图:

在此处输入图像描述

4

2 回答 2

2

我做了一个你可能正在寻找的快速工作示例:

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

addmarked.php应该能够使用explode(",", $_GET["asin"])或类似的方法来处理所有已选中复选框的值。

于 2013-01-24T00:10:12.247 回答
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'])
于 2013-01-24T00:29:33.103 回答