Ich sende ein JS-Objekt über $ .post() und ich möchte ein Array zurück.Return PHP-Array nach AJAX-Aufruf
JS
var ajaxData = {action:"createuser"}
$("input[required]").each(function(){
var attr = $(this).attr("name");
ajaxData[attr] = $(this).val();
});
$.post(
daten.ajaxurl,
ajaxData,
function(data){
alert(data[0])
}
)
PHP
//Create a User
add_action('wp_ajax_nopriv_createuser','createuser');
function createuser() {
foreach ($_POST as $key => $value) {
if(empty($value)) {
$type = "error";
$content = "$key is empty";
echo array($type,$content);
wp_die();
}
}
}
Was bekomme ich als Antwort ist immer ein String, so dass es gut funktioniert, wenn ich $ content Echo.
Ich habe gelesen, dass Sie JSON verwenden können und es automatisch codieren, wenn Sie DataTaype hinzufügen: "JSON".
Aber ich habe keine Ahnung, wie richtig es tho
Just do 'Echo json_encode (array ($ type, $ content))'. Ich nehme an, dass du das meinst. – Andrew
@Andrew jetzt bekomme ich ein Objekt zurück. Ich nehme an, es ist ein JSON-Objekt. Wie kann ich es in ein Array verwandeln? –
Sie können [JSON Parse] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse) von javascript verwenden, um die Informationen im json zu lesen. – Andrew