php - Ajax 调用对于特定查询的特定 if else 语句无法正常工作

标签 php mysql ajax

这是我的代码。我很确定我的代码是正确的,但仅对于最后一个查询它无法正常运行。所有剩余的查询都运行良好,但最后一个查询没有通过某些对象返回值无法访问,但正在更新表。怎么了? 我附上正在显示的错误的图片。错误图像

enter image description here

首先是前端页面的代码:

<!DOCTYPE html>
<head>
</head>
<body>
<form>
<input type="text" id='dat'>
<button id='submit'>Submit</button>
</form>
<script src = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.2.3.js">
</script> 
<script>
$(function(){
    $('#submit').click(function(){
       var x=$('#dat').val();
       $.ajax({
           type:"GET",
           url: "promo_code_apply2.php",
           dataType: "json",
           data: { x : x },
           success: function(result){
               alert(result);
           },
           error: function(e) {
            // Handle error here
               console.log(e);
           }
     });
   });
});
</script>
</body>

现在是后端代码:

            <?php
        include('connection.php');
        include('functions.php');
        $p_code=$_GET['x'];
        $sql="select * invite_codes where promo_name='".$p_code."'";
        $res=mysqli_query($con,$sql);
        if(!$res)
        {
            $data=mysqli_error($con);
            echo json_encode($data);
            die();
        }
        else{
        if(mysqli_num_rows($res)==0)
        {
            $data="Invalid Code";
            echo json_encode($data);
        }
        else{
            $row=mysqli_fetch_assoc($res);
            $ph=$row['user_mob'];
            $sql2="update user_signup set no_of_referrals=no_of_referrals+1 where promo_name='".$p_code."'";
            $res2=mysqli_query($con,$sql2);
            if(!$res2)
            {
                $data=mysqli_error($con);
                echo json_encode($data);
                die();
            }
            else
            {
            $data="Conngrats";
            echo json_encode($data);
            }
        }
        }
        ?>

最佳答案

您没有设置按钮类型,因为它位于表单内,所以它的默认类型是提交。当您按下按钮时,您的 jQuery 事件处理程序将被调用,但完成后将调用默认操作,即提交表单操作。它会重新加载您的页面,并且您的 jQuery 处理程序不会从 PHP 获取数据,因为 JavaScript 状态会在重新加载后重置。 为了防止这种行为,您可以:

  1. return false 放在 jQuery 事件处理程序的末尾 - 如下所示:

    $(函数(){ $('#submit1').click(function(){ ... }); 返回假;//<--- 阻止默认操作 }); });

  • 设置按钮类型type="button"
  • 关于php - Ajax 调用对于特定查询的特定 if else 语句无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43700233/

    相关文章:

    php - 在 PHP 中向站点添加支付方式和托管

    PHP explode 函数只允许我在搜索 in_array 时检测数组的第一项。为什么?

    c# - 第 1 行 'date' 列的日期时间值不正确

    jquery - Html.BeginForm 是否有 OnSuccess 事件

    javascript - MySQL/PHP/jQuery - 查询问题

    javascript - 在jquery中解析json

    php - 无法从 paypal IPN 沙箱获得响应

    php - 将多行合并为一行的最有效方法

    php - 用于视频播放的 Javascript 监听器 - 发送到数据库

    php - 来自具有相同列名的两个表的数据