将结果从 pdo 发送到 ajax 时遇到问题

Posted

技术标签:

【中文标题】将结果从 pdo 发送到 ajax 时遇到问题【英文标题】:Having trouble in sending the results from pdo to ajax 【发布时间】:2014-08-11 03:06:46 【问题描述】:

我想做的是如果用户成功注册,pdo 将提供一个信息并将其发送到 ajax,如果用户注册与否,ajax 将发送消息。在我将这个条件放入我的 pdo 后它工作正常,现在它不会再插入,并且 ajax 告诉“错误注册用户!”一直都是。

脚本:

<script type="text/javascript">
$(document).ready(function() 

   $('#submit').click(function (e) 
       e.preventDefault();

        var data = ;
        data.name = $('#name').val();
        data.age = $('#age').val();
        data.gender = $('#gender').val();
        data.address = $('#address').val();
        data.image = $('#imgInp').val();


        $.ajax(
            type: "POST",
            url: "user.php",
            data: data,
            cache: false,
            success: function (response) 
            if (Number(response) == 1)
                
                alert("User successfully registered");
                
                      else
                
                alert("Error registering user!");
                
            
        );
            return false;
    );

);
</script>

user.php:

<?php
$host = "localhost";
$user = "root";
$pass = "";
$db = "test";

$dbc = new PDO("mysql:host=" . $host . ";dbname=" . $db, $user, $pass);
$dbc->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$name = @$_POST['name'];
$age = @$_POST['age'];
$address = @$_POST['address'];
$gender = @$_POST['gender'];
$imageName = @$_FILES['image']['name'];


 $q = "INSERT INTO students(name, age, address, gender, imageName ) VALUES(:name, :age, :address, :gender, :image)";

    $query = $dbc->prepare($q);
    $query->bindParam(':name', $name);
    $query->bindParam(':age', $age);
    $query->bindParam(':address', $address);
    $query->bindParam(':gender', $gender);
    $query->bindParam(':image', $imageName);


    $results = $query->execute();
    $results ? echo "1"; : echo "2"; ;
?>

【问题讨论】:

有什么错误吗?查询是否正在执行,即它是否回显 1? 【参考方案1】:

您似乎有错误:

$results ? echo "1"; : echo "2"; ;

yours demo

试试这样:

echo  $results ? "1" : "2";

working demo

你可以看here一个教程。

【讨论】:

@user3756231:你试过了吗? 作为对错误的补充说明:三元条件不执行指令,它们返回值。因此使用 A ? B :如果 A 的计算结果为 true ,则 C 将返回 B ,如果计算结果为 false ,则返回 C ;它不会“执行”B 或 C。因为“echo 1;”是指令而不是值,代码导致错误,javascript接收到的响应内容总是不为1(不管是因为响应为空,还是返回一大块php错误文本)

以上是关于将结果从 pdo 发送到 ajax 时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

当我将 var 从 ajax 发送到 php 时,如果 (isset $_Post[]) 不起作用

通过ajax向快递服务器发送数据时遇到问题

如何使用来自 Ajax 变量的 PHP PDO 处理许多 WHERE 子句

尝试从 AJAX 中的文本框获取价值并将其发送到新页面

我可以有一个持久的 PDO 对象,它只接受从 AJAX 调用绑定的新变量吗?

PDO 不会将数据从 mysql 返回到 jQuery AJAX [关闭]