为啥我没有从 php 得到任何东西?

Posted

技术标签:

【中文标题】为啥我没有从 php 得到任何东西?【英文标题】:Why am i not getting anything from php?为什么我没有从 php 得到任何东西? 【发布时间】:2015-06-26 04:12:06 【问题描述】:
$('#registerForm').submit(
    function()
    
        callAjaxSubmitMethod(this);
        //event.preventDefault();
    
);

这是我的dom里面的函数准备好了。

function callAjaxSubmitMethod(form)

    $.ajax(
        type: "POST",
        url: "lib/registration_validate.php",
        data: $("#registerForm").serialize(),

        success: function(response)
        
            alert("s"+response.status);
        ,

        error:function(response)
        
            alert("e"+response);
        
    );

这是实际的函数定义。

我的php内容是

<?php
include 'configdb.php';
session_start();
global $connection;
echo "oops";
if(isset($_POST['submit']) && $_POST['email']!='' && $_POST['password']!='')
   //use empty....
   $email= $_POST['email'];
   $sql1 = "SELECT * FROM Users WHERE emailID = '$email'";
   $result1 = mysqli_query($connection,$sql1) or die("Oops");
   if (mysqli_num_rows($result1) > 0)
   
        $_SESSION['email_exist']="Email Already Exists";
        //die('status':'Email Already Exists');
        //echo var_dump($_SESSION);
        //echo 'status:0' ;
        //exit;
   
  
  ?>

我没有收到任何警报。如果我启用 event.preventDefault(),我会在 mozilla 中获得 out of memory error,在 chrome 中获得 sundefined 警报。

【问题讨论】:

请提供正确的代码。我们需要完整的 PHP 代码。 当您遇到 AJAX 请求问题时,总是: 1. 检查 http 服务器错误日志文件。 2. 检查您的浏览器开发控制台是否有 javascript 错误。 3. 检查浏览器开发控制台中的网络选项卡,查看发送的 AJAX 请求及其结果。在 99% 的情况下,您会在某处看到清晰的错误描述。从那里应该可以修复该错误并更进一步。但除非您查看阅读错误,否则您尝试的一切都只是猜测 Firebug 的网络控制台是否出现 404 错误? 不,我无法在“网络”选项卡中得到任何 404 从 PHP 老兄那里回声 :) 你已经评论过了。 【参考方案1】:

使用

if(isset($_POST['submit']) && $_POST['email']!='' && $_POST['password']!='')
   //use empty....
   $email= $_POST['email'];
   $sql1 = "SELECT * FROM Users WHERE emailID = '$email'";
   $result1 = mysqli_query($connection,$sql1) or die("Oops");

   $response = array();

   if (mysqli_num_rows($result1) > 0)
   
        $_SESSION['email_exist']="Email Already Exists";

        $response['status']='Email Already Exists';
   
   else
        $response['status']='Allis OK';
   
   echo json_encode($response); die;

并在 ajax 中添加:

dataType:'json'

编辑

供您参考,如何设置数据类型:

$.ajax(
        type: "POST",
        dataType:'json',
        url: "lib/registration_validate.php",
        data: $("#registerForm").serialize(),

        success: function(response)
        
            alert("s"+response.status);
        ,

        error:function(response)
        
            alert("e"+response);
        
    );

【讨论】:

谢谢。 uncaught Exception: outofmemory 在 Mozilla 的控制台选项卡中。网络选项卡中有 0 个请求。但我在 chrome 中得到了 s [object][object]。铬很好。我可以在那里解析json。 当然,然后检查***.com/questions/25903625/… 按照我说的使用 dataType:"json" 感谢 SO 链接。我在我的 html 中没有使用太多数据。只有一种形式。 @GopsAB ,嗨冷静下来,听着,检查编辑的答案,

以上是关于为啥我没有从 php 得到任何东西?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我从 MySQL 查询中得到重复的项目?

为啥我的线程被临界区阻塞,没有被任何东西占用?

为啥我没有得到任何回应

SMTP Telnet 和 PHP 没有从 HELO 得到任何响应

为啥我的 C 结构在输入中没有得到任何数据?

为啥我的 QDeclarativeItem 没有得到任何鼠标/键盘事件?