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']));
?>

私のfirebugのスクリーンショット:

ここに画像の説明を入力

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のunserializeに対応するJSはないため、シリアル化する別の方法が必要になります。JSONは良い考えです:

JavaScript

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

PHP

json_decode($_GET['asin'])
于 2013-01-24T00:29:33.103 に答える