1

したがって、基本的には、配列を作成するための jQuery および HTML コードを次に示します。基本的に、各 div をクラス設定で取得し、属性 rel を持つスパンがあるかどうかをチェックします。ある場合は、配列の下の配列に挿入します。新しい div.settign スパン rel 属性はそれぞれ、同じ親配列の下の別の配列に挿入されます。

このコードを確認して理解してください - http://jsfiddle.net/xVuHx/

ここにも貼り付けました -

jQuery(document).ready(function() {
    var rel = [];
    jQuery(".setting").each(function() {
        rel.push(jQuery(this).find('span[rel]').map(function() {
            return this.getAttribute('rel');
        }).get());
    });               
    jQuery("body").text(rel);
});​

とhtml -

<div class="setting">
    <span rel="Variable">Variable</span>
    <span rel="Item">Item</span>
    <span rel="Something">Something</span>
</div>
<div>
    <span rel="Smth">Smth</span>
    <span>Sec</span>
</div>
<div class="setting">
    <span>Second</span>
    <span rel="first">First</span>
    <span rel="Third">Third</span>
</div>

それはうまく機能し、2つの配列を表示します.1つは3つの要素を持ち、もう1つは2つの要素を持ちますが、ajax経由でPHPファイルに渡そうとすると、tiは [object Object] with var_dump($array); を返します。. また、foreachをやってみましたが、foreach文に無効な引数が渡されているとのことでしたので、配列を間違ってajaxに送っているか、配列が間違って作られていると思います。

これが私のajaxコードです-

var myArray = jQuery(this).sortable("serialize") + "&type="+rel+"&action=update_homepage";
jQuery.post("'.admin_url("admin-ajax.php").'", myArray, function(response){
   var info = response.slice(0,-1);
});

この ajax コードは wordpress で作成されているため、その ajax リクエストはデフォルトの AJAX リクエストとは少し異なります。

何が問題なのか正確に確認していただけますか?

編集:

PHP側で出力しようとしたところprint_r($myArray);、空の文字列が出力されます。

4

2 に答える 2

2

ブラウザコンソール(セクションネットワーク)でAJAXリクエストに投稿されたデータのフォーマットを確認してください。

このstackexchangeの質問で、ブラウザでコンソールを開く方法についての情報を見つけることができます。

JSON-js -JavaScriptのJSON。

オブジェクトをJSONに変換するには、次を使用しますJSON.stringify

var json_text = JSON.stringify(your_object, null, 2);

配列をJSONにエンコードしてから、Ajaxリクエストで送信します。PHPでJSONをデコードするには、json_decodeを使用します

于 2012-07-18T08:08:47.643 に答える
0

jsonに変換したほうがいいです

于 2012-07-18T08:04:14.993 に答える