我通过HTML中的数组传递用户的输入值(使用AJAX)到php页面(In fetching Array)时遇到麻烦。 我使用的方法是否正确?我在PHP页面中没有获得价值。
首先,我将用户的值分配给变量
var first_name = $("[name='first_name']").val();
var last_name = $("[name='last_name']").val();
然后创建它的数组。
var MyArray = {"firstname": first_name, "lastname": last_name};
在这里我如何将值传递给外部服务器的php文件
$.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;
现在PHP文件代码用于从HTML页面检索请求的数组并运行PHP-MySQL更新查询
$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;
}
答案 0 :(得分:1)
使用
data: MyArray,
或
data: {firstname: first_name, lastname: last_name},
而不是
data: "userarray="+ MyArray,
在服务器端
$get_array = $_POST;
和
$query = mysql_query("UPDATE ".$db.".users SET first_name='" . $get_array["firstname"] . "', last_name='" . $get_array["lastname"] . "'");
注意:不推荐使用mysql_query,使用pdo或mysqli,并且此表单不安全(mysql_real_escape_string()
缺失)
答案 1 :(得分:1)
执行此操作后,您已将javascript数组转换为字符串:
data: "userarray="+ MyArray,
所以基本上,php只是获取一个字符串。 您可能希望在javascript中执行此操作:
var MyArray = {"firstname": first_name, "lastname": last_name};
data: MyArray,
或者
data: {"firstname": first_name, "lastname": last_name},
在你的php脚本中:
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
答案 2 :(得分:0)
var MyArray = {"firstname": first_name, "lastname": last_name};
data: MyArray,