2016-11-10 1 views
1

Ich frage mich, ob es möglich ist, ein Array mit der jQuery AJAX-Funktion an eine PHP-Funktion zu übergeben. Ich habe folgende als meinen JavascriptObjekt an PHP über AJAX übergeben

arr_data = { 
    field01: "data 01", 
    field02: "data 02", 
    field03: "data 03", 
    field04: "data 04" 
} 

$.ajax({ 
    url: "scripts/php/phpfunc.php", 
    type: "GET", 
    dataType: "json", 
    data: { 
     'action': "exec_find", 
     'field01': arr_data["field01"], 
     'field02': arr_data["field02"], 
     'field03': arr_data["field03"], 
     'field04': arr_data["field04"] 
    }, 
    success: function(result) { 
     // continue program 
    }, 
    error: function(log) { 
     // handle error 
    } 
}); 

Wenn ich versuche, die folgenden zu tun, obwohl

arr_data = { 
    field01: "data 01", 
    field02: "data 02", 
    field03: "data 03", 
    field04: "data 04" 
} 

$.ajax({ 
    url: "scripts/php/phpfunc.php", 
    type: "GET", 
    dataType: "json", 
    data: { 
     'action': "exec_find", 
     'data': arr_data 
    }, 
    success: function(result) { 
     // continue program 
    }, 
    error: function(log) { 
     // handle error 
    } 
}); 

Ich erhalte es in der PHP als „Array“. Wie kann ich das Objekt korrekt senden, damit es von der PHP-Funktion verwendet werden kann?

+2

aus der zweiten Ajax können Sie auf die Daten zugreifen wie: $ _GET [‘ data '] [' field01 '] – madalinivascu

+0

Da Sie die Daten als json senden, verwenden Sie json_decode in der PHP-Funktion, um das json in das PHP-Array zu konvertieren, und dann können Sie ca n parse es – Webdev

+1

Nur FYI, was Sie senden, ist ein Objekt. Ich aktualisierte die Frage entsprechend –

Antwort

1

aus dem zweiten Ajax Sie wie auf die Eigenschaftsnamen basierend auf Daten zugreifen können: $_GET['data']['field01']

$_GET['data'] ist das js Objekt in PHP in einem assoziativen Array umgewandelt

2

Bitte versuchen Sie das Array in dem Format zu übergeben von json. Dann benutze den JSON in deinem PHP und greife auf das JSON-Array zu.

<script> 

arr_data = { 
    field01: "data 01", 
    field02: "data 02", 
    field03: "data 03", 
    field04: "data 04" 
} 
var = JSON.stringify(arr_data); 
$.ajax({ 
    url: "scripts/php/phpfunc.php", 
    type: "GET", 
    dataType: "json", 
    data: { 
     'action': "exec_find", 
     'data': myJsonString 
    }, 
    success: function(result) { 
     // continue program 
    }, 
    error: function(log) { 
     // handle error 
    } 
}); 
</script> 

Dies ist Ihr Java-Skript. und unten ist der php

$dataJson=json_decode($_GET['data']); 

hier können Sie die JSON-Array und Schleife durch sie und tun, was immer Sie wollen.

Bitte versuchen Sie dies. Das funktioniert in meinem Fall.

0

versuchen, diesen:

$.ajax({ 
    url: "scripts/php/phpfunc.php", 
    method: "POST", 
    dataType: "json", 
    data: { 
     'action': "exec_find", 
     'data': arr_data.serialize() 
    }, 

serialize()

http://api.jquery.com/serialize/

Ihr Array in String konvertiert

+0

das sieht für die Zukunft gut aus – Trent

Verwandte Themen