Heim > Artikel > Backend-Entwicklung > php如何处理ajax提交的表单?
自己做了一个项目,
使用jQuery的ajax模块发送数据到php页面中,
php页面使用$_POST['']接收数据,
返回的时候使用 echo json_encode($respond);
可是在ajax的success函数里打印返回的json数据不正常。
而且跳转也不正常,ajax是不会跳转页面的对吧,返回结果后,页面跳转一次到该页面(刷新)。
我是不是哪个环节出错了?
在线等。
jQuery:
<code>$(function(){ //登陆 $("#button_signip").click(function(){ }); //注册 $("#button_signup").click(function(){ console.log($("#logup_inputUser").value); $.ajax({ type: 'post', ulr: '../service/logupBusiness.php', async: false, data: $("#form_signup").serialize(), beforeSend: function () { }, complete: function () { }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus); }, success: function (data, textStatus) { console.log(data);//返回的结果不正常,并不是json console.log(textStatus); alert(data); } }); }); });</code>
php业务逻辑(logupBusiness.php):
<code><?php /** * Created by PhpStorm. * User: alpha * Date: 15/10/31 * Time: 00:57 * Description: 注册业务逻辑 */ require '../bmob.lib.php'; $name = $_POST['name']; $email = $_POST['email']; $password = $_POST['password']; $confirmPassword = $_POST['confirmPassword']; //主要业务逻辑 try{ $bmobUser = new BmobUser(); $res = $bmobUser->register(array("username"=>$name, "password"=>$password, "email"=>$email)); $res = $bmobUser->login($name,$password); echo json_encode($res);//返回结果,son }catch (Exception $e){ echo $e; }</code>
自己做了一个项目,
使用jQuery的ajax模块发送数据到php页面中,
php页面使用$_POST['']接收数据,
返回的时候使用 echo json_encode($respond);
可是在ajax的success函数里打印返回的json数据不正常。
而且跳转也不正常,ajax是不会跳转页面的对吧,返回结果后,页面跳转一次到该页面(刷新)。
我是不是哪个环节出错了?
在线等。
jQuery:
<code>$(function(){ //登陆 $("#button_signip").click(function(){ }); //注册 $("#button_signup").click(function(){ console.log($("#logup_inputUser").value); $.ajax({ type: 'post', ulr: '../service/logupBusiness.php', async: false, data: $("#form_signup").serialize(), beforeSend: function () { }, complete: function () { }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus); }, success: function (data, textStatus) { console.log(data);//返回的结果不正常,并不是json console.log(textStatus); alert(data); } }); }); });</code>
php业务逻辑(logupBusiness.php):
<code><?php /** * Created by PhpStorm. * User: alpha * Date: 15/10/31 * Time: 00:57 * Description: 注册业务逻辑 */ require '../bmob.lib.php'; $name = $_POST['name']; $email = $_POST['email']; $password = $_POST['password']; $confirmPassword = $_POST['confirmPassword']; //主要业务逻辑 try{ $bmobUser = new BmobUser(); $res = $bmobUser->register(array("username"=>$name, "password"=>$password, "email"=>$email)); $res = $bmobUser->login($name,$password); echo json_encode($res);//返回结果,son }catch (Exception $e){ echo $e; }</code>
提供你的 success
函数.
提供你后端在使用 echo json_encode($respond);
的结果.
根据你更新后的内容继续追问:
提供 ID 为 button_signup
的这个DOM节点的HTML代码.
提供 在请求logupBusiness.php
这个PHP文件时, 后端输出的内容, 而不是提供你的这的这个PHP的源代码.
不过以你目前的代码, 猜测你的那个 button_signup
对应的可能是一个 type=submit
类型的按钮, 然后在点了之后, 提交了表单, 然后跳走了..
那必然是某个环节出了问题,不过从你提供的信息看不出哪里有问题。你可以注意一下json_encode结果是否正常,js里是否还有其他方法处理了结果。
$.ajax
success:function(callback){alert(callback)},
php:
echo json_encode($str,JSON_FORCE_OBJECT);
不贴代码出来大家都帮不了你呢,如果比较隐私,可以贴个demo模拟代码也行,大家好帮你分析下哪里有错。
楼主最好把代码贴出来