したがって、基本的には、配列を作成するための 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);
、空の文字列が出力されます。