初学script+ajax 数据提交问题
............
............
edit_server.php中的内容:
require_once "functions.php";
connectDb();
if($_GET['action']=="1")
{
$pw = $_POST['pw'];
$email = $_POST['email'];
mysql_query("UPDATE basic_information SET pw = '$pw',email = '$email');
if(mysql_errno()){
echo mysql_error();
}else{
getData(1);
}
}
回复讨论(解决方案)
几个问题:
1、edit_server.php 中要检查 $_GET['action']=="1"
但 ajax 的 url 中没有参数(url:"edit_server.php",)
要这样 url:"edit_server.php?action=" + i,
2、sendData='{"action":"'+i+'","pw":'+getElementByName+',"email":'+getElementByName+':}'
这样赋值后 sendData 是字符串,不会被 php 解析成 $_POST 数组
要这样
sendData = {pw : document.getElementByName(‘pw').value, email : document.getElementByName('emal'][0].value }
前端ajax 提交时用了post方式 ,后端PHP 用 if( $_GET['action']=="1") { ....} 来验证所以问题就来了。
修改后
后台:
if($_POST['action']=="1")
{
$pw = $_POST['pw'];
$email = $_POST['email'];
mysql_query("UPDATE basic_information SET pw = '$pw',email = '$email');
if(mysql_errno()){
echo mysql_error();
}else{
getData(1);
}
}
但依然无法运行,控制台提示ReferenceError: getElementByName is not defined
getElementsByName
改完后,数据依然没有传入
换种ajax方式,初始化后,在提交,发送参数,接收返回数据。
非常感谢诸位大神,已成功解决问题。
if(i=="1"){sendData={pw: document.getElementByName("pw").value,email: document.getElementByName("email").value};}
推荐阅读
-
解决vue中post方式提交数据后台无法接收的问题
-
ajax 提交数据到后台jsp页面及页面跳转问题
-
解决Layui 表单提交数据为空的问题
-
解决表单提交的数据丢失问题
-
解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
-
解决vue 按钮多次点击重复提交数据问题
-
Jetty提交数据时报java.lang.IllegalStateException: Form too large270468>200000问题解决
-
Jetty提交数据时报java.lang.IllegalStateException: Form too large270468>200000问题解决
-
前端提交数据对象属性以_开头导致的数据丢失问题分享
-
Ajax异步提交数据返回值的换行问题实例分析