Reputation: 1061
I am in trouble while pass user's input value via array from HTML (Using AJAX) To php page (In fetching Array) . Is method I use is correct ? I didn't get value in my PHP page.
First I assign user's value to variable
var first_name = $("[name='first_name']").val();
var last_name = $("[name='last_name']").val();
Then Create Its array.
var MyArray = {"firstname": first_name, "lastname": last_name};
And Here How I pass value to external server's php file
$.ajax({
type: "POST",
url: GolbalURL+"updategeneralinformation.php",
data: "userarray="+ MyArray,
dataType:'json',
success: function(response){
if(response.success) {
navigator.notification.alert(
'Ok',
// No need for Callback function
'Ok',
'Ok'
)
}
else {
navigator.notification.alert(
'Something went wrong while attempting update',
// No need for Callback function
'Atempt Fail',
'Try Again'
)
}
},
error: function(error){
navigator.notification.alert(
error,
// No need for Callback function
'Something wrong',
'Try Again'
)
}
});
return false;
Now PHP File code for retrieve Requested array from HTML page and run PHP-MySQL Update Query
$get_array = $_REQUEST['userarray'];
$query = mysql_query("UPDATE ".$db.".users SET first_name='$get_array["firstname"]', last_name='$get_array["lastname"]' ");
mysql_query($query);
if (!mysql_query($query, $con)) {
//die('Error: ' . mysql_error());
$response['success'] = false;
} else {
$response['success'] = true;
}
Upvotes: 0
Views: 104
Reputation: 11
var MyArray = {"firstname": first_name, "lastname": last_name};
data: MyArray,
Upvotes: 0
Reputation: 610
You've convert your javascript array into a string when you do this:
data: "userarray="+ MyArray,
So basically, php just gets a string. You may want to do this in your javascript:
var MyArray = {"firstname": first_name, "lastname": last_name};
data: MyArray,
Or
data: {"firstname": first_name, "lastname": last_name},
And in your php script:
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
Upvotes: 1
Reputation:
Use
data: MyArray,
or
data: {firstname: first_name, lastname: last_name},
instead of
data: "userarray="+ MyArray,
at server side
$get_array = $_POST;
and
$query = mysql_query("UPDATE ".$db.".users SET first_name='" . $get_array["firstname"] . "', last_name='" . $get_array["lastname"] . "'");
Note: the mysql_query is deprecated, use pdo or mysqli, and its unsecure in this form (mysql_real_escape_string()
missing)
Upvotes: 1