Ich habe mehrere Eingänge auf meiner Plugins-Website. Ich sammle die Werte von denen und schiebe sie in ein Array. Dann verwenden Sie die jQuery.post
Methode, um es in meinem PHP-Skript zu veröffentlichen.Wordpress - JSon-codierte Array zu PHP zurückgeben gibt nichts zurück/
Javascript:
var json = JSON.stringify(output); // output is an array with multiple strings
var data = {
"action" : "add",
"output" : json,
}
jQuery.post(ajaxurl, data, function(response){
console.log(response); // logs the response from PHP
})
PHP:
$array = json_decode($_POST['output']);
update_option("option", $array);
var_dump($array); // returns NULL in console
echo $array; // returns nothing in console
wp_die();
Ich möchte PHP das Array JS zurückzukehren und es als Option zu speichern.
Dies ist meine erste Frage hier. Bitte zögern Sie nicht, mir Tipps zu geben, wie ich meine Frage und meinen Code verbessern kann.
Lösung
Es schien Probleme mit dem ‚\‘ im JSON-String zu haben, die gebucht wurde.
$array = json_decode(stripslashes($_POST['output']))
hat den Job
Überprüfen Sie in Ihrem Netzwerk-Tab, was die 'var_dump ($ array)' Dumps ... und dump '$ _POST ['output']' auch um zu sehen, was es tatsächlich enthält . –
Er gibt "NULL" in der Konsole aus, wenn Sie das meinen .... 'var_dump ($ _ POST ['output')]' protokolliert die Json-Zeichenkette – IruleZ
Nein .. In Entwickler-Tools haben Sie eine Registerkarte mit dem Namen "Netzwerk ". Klicken Sie auf "Netzwerk" und führen Sie Ihr JS-Skript aus. Sie sollten dann die aufgerufene URL sehen (genauso wie Ihre 'ajaxurl' enthält). Klicken Sie auf diese URL und dann auf "Antwort". Das gibt Ihnen die tatsächliche Antwort von Ihrem PHP-Skript. Ihre 'console.log' zeigt Ihnen nur, was jQuery zurückgibt. Wenn also Fehler oder ein ungültiges Format auftreten, erhalten Sie null. –