1

このような配列を保存しています

<input type="hidden" value="Array ( [0] => cb_05 [1] => cb_06 [2] => cb_07 [3] => cb_08 [4] => cb_09 [5] => type ) " id="price_id" name="price_id">

配列を取得して、jquery の投稿で送信する必要があります

var price_id = $("#price_id").val();

$.post("class.php",{price_id:price_id},function(data){


        alert(data);


    });

クラスで foreach を実行すると、配列として表示されません。文字列として送信されているためだと思いますが、これを回避する方法はありますか?

4

2 に答える 2

2

data-属性と jQuerydata()メソッドを使用して配列を操作できます

<anyElement id="price_id" data-priceArray="<?php echo json_encode($array) ?>"/>
<!-- will look like-->
<anyElement id="price_id" data-priceArray="["1","2","3","4"]"/>

JS

var price_id = $("#price_id").data('priceArray');
/* is now a js array*/
  alert(price_id[3])

$.post("class.php",{price_id:price_id},function(data){
        alert(data);
});
于 2012-12-25T21:39:36.100 に答える
0

php は、print_r() からの文字列を配列として自動的に認識しません。特定の関数を使用して、配列を PHP が認識できるものにシリアル化する必要があります。json_encode()そのために使用するのに適した機能です。

ただし、json_encode()HTML を破壊する引用符やその他の文字を含む文字列が生成される可能性があるため、そのような文字を含まないエンコーディングでもう一度エンコードする必要があります。そのために使用base64_encode()します。

<input type="hidden" value="<?=base64_encode(json_encode($source_array))?>" id="price_id" name="price_id">

後で、ajax またはフォーム ポストを受け取ったとき

$reified_array = json_decode(base64_decode($_POST['price_id']));
foreach ($reified_array as $val) { ... }

json_decode
json_encode
base64_encode

于 2012-12-25T21:27:40.160 に答える