コードをきれいにするために、WordPressを使用して$.post
メソッドでマルチレベル連想オブジェクトを作成したいと思います。問題は、これらの値をバックエンドで操作する方法がわからないことです。
これは、AJAXリクエストを含んで処理するmy_query.js
ファイルでやりたいことです。
$.post( MyAjax.ajaxurl, {
action: 'my_action',
someValue: {
one: 'Some Value One',
two: 'Some Value Two',
three: 'Some Value Three',
four: 'Some Value Four',
}
} );
これが現在の解決策であり、私はDO NOTをコードに実装したい。
$.post( MyAjax.ajaxurl, {
action: 'my_action',
someValueOne: 'Some Value One',
someValueTwo: 'Some Value Two',
someValueThree: 'Some Value Three',
someValueFour: 'Some Value Four'
} );
バックエンドでこれらの値を取得できる唯一の方法は、2番目のオプションを使用し、.php
ファイルでこれを実行することです。
$someValue = array(
'one' => $_POST[ 'someValueOne' ],
'two' => $_POST[ 'someValueTwo' ],
'three' => $_POST[ 'someValueThree' ],
'four' => $_POST[ 'someValueFour' ]
);
echo $someValue[ 'one' ];
wp_die();
I DO NOT最初の例を使用して.php
ファイル内でAJAX Data Objectにアクセスする方法を知っています2番目のものを使用することによってのみ機能します。最初のAJAX Requestの例を使用して、.php
ファイル内のsomeValue
オブジェクトを返すにはどうすればよいですか?
実際に私が見つけた解決策はとても単純で、あまり必要としませんでした。どういうわけか私はバックエンドで私のAJAX機能要求の中のデータを検索することができませんでした。
以下でわかるように、私はsomeValue
プロパティを私が望んだとおりに定義しました。とてもきれいできれいです。
$.post( MyAjax.ajaxurl, {
action: 'my_action',
someValue: {
one: 'Some Value One',
two: 'Some Value Two',
three: 'Some Value Three',
four: 'Some Value Four'
}
} );
データオブジェクトの中で定義されているすべてのプロパティを私のバックエンドの中の配列として関連付けることができることを忘れているはずです。function。
$someValue = array(
'one' => $_POST[ 'someValue' ][ 'one' ],
'two' => $_POST[ 'someValue' ][ 'two' ],
'three' => $_POST[ 'someValue' ][ 'three' ],
'four' => $_POST[ 'someValue' ][ 'four' ]
);
wp_die();
あなたがAJAXリクエストからどのような種類のデータを取得しているのかわからない場合。私たちの友人 @ mmm がvar_dump()
またはprint_r()
$_POST
スーパーグローバルに要求したことを実行することをお勧めします。何か。
複雑な値を渡したい場合は、おそらくそれをJSON化することです。何かのようなもの
$.post( MyAjax.ajaxurl, {
action: 'my_action',
someValue: JSON.stringify({
one: 'Some Value One',
two: 'Some Value Two',
three: 'Some Value Three',
four: 'Some Value Four',
})
} );
そしてサーバー側であなたはで値をデコードします
$someValue = json_decode($_POST['someValue']);
この時点で$someValue
はあなたが渡したい配列であるべきです。