【问题标题】:Having trouble in sending the results from pdo to ajax将结果从 pdo 发送到 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?

标签: javascript php jquery ajax pdo


【解决方案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错误文本)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-11
相关资源
最近更新 更多