将结果从 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 变量的 PHP PDO 处理许多 WHERE 子句