I have to pass a Javascript arry to a PHP file while AJAX call.
Below is my js array:
var myArray = new Array("Saab","Volvo","BMW");
This JS code has to pass JS array to PHP file using AJAX request and will show count of array.
function ProcessAJAXRequest()
{
$.ajax
({
type: "POST",
url: "myphpfile.php",
data: {"id" : 1, "myJSArray" : myArray},
success: function (data)
{
alert(data);
}
});
}
This myphpfile.php file has to return the count of the array
<?php
$myPHPArray = $_POST["myJSArray"];
echo count($myPHPArray);
?>
There is error in PHP file. I am getting undefined index: myPHPArray. How should acheive my required functionality?
Convert js array in json format by JSON.stringify
function ProcessAJAXRequest()
{
$.ajax
({
type: "POST",
url: "myphpfile.php",
data: {"id" : 1, "myJSArray" : JSON.stringify(myArray)},
success: function (data)
{
alert(data);
}
});
}
And In the PHP
use json_decode
function to get value in array
json_decode($_POST["myJSArray"]);
Use JSON.stringify
to converts a value to JSON and send it to server.
data: JSON.stringify({"id" : 1, "myJSArray" : myArray})
You could use JSON.stringify(array)
to encode your array in JavaScript, and then use
$array=json_decode($_POST['jsondata']);
in your PHP script to retrieve it.please check this link
What seems to me is that your array is not available in the function scope:
function ProcessAJAXRequest(){
var myArray = new Array("Saab","Volvo","BMW"); // this has to be in fn scope
$.ajax({
type: "POST",
url: "myphpfile.php",
data: {"id" : 1, "myJSArray" : JSON.stringify(myArray)}, // do the stringify before posting
success: function (data){
alert(data);
}
});
}