当用户提交数据字符串作为条目时,我有一个对 php 脚本的 ajax 调用,该脚本使用新记录更新我的 MySQL 数据库。PHP 的一部分是一个 if/else ,它将检查条目是否重复。我可以阻止副本更新数据库,但我不知道如何发回一条“错误”消息,上面写着“该记录已存在”......这是我的 jquery:[script] $(function() {
$(".entry_button").click(function()
{
var element = $(this);
var boxval = $("#entry").val();
var dataString = 'entry='+ boxval;
if(boxval=='') {
alert("Please Enter Some Text");
} else {
$("#flash").show();
$("#flash").fadeIn(400).html('<img src="images/loading.gif" align="absmiddle"> <span class="loading">Broifying It...</span>');
$.ajax({
type: "POST",
url: "update_data.php",
data: dataString,
cache: false,
success: function(html){
$("ol#update").prepend(html);
$("ol#update li").slideDown("slow");
document.getElementById('entry').value='';
$("#flash").hide();
}
});
}
return false;
});
});
[/script]
这是我更新数据库(update_data.php)的php脚本:
[php]
include('db.php');
if(isset($_POST['entry']))
{
$date_created = date('Y-m-d H:i:s');
$entry = $_POST['entry'];
$query = "SELECT COUNT(*) AS count FROM table WHERE entry = '$entry'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
if ($row['count'] == 0) {
mysql_query("insert into table (entry,date_created) values ('$entry','$date_created')");
$sql_in= mysql_query("SELECT entry,id FROM table order by id desc");
$r=mysql_fetch_array($sql_in);
$newentry=$r['newentry'];
$id=$r['id'];
?>
<li class="entry bar<?php echo $id; ?>">
<div class="thebro"><span><?php echo $newentry; ?></span></div>
<div class="hr"></div>
<div class="utility-left"><span class="share"><a href="#" title="Share">share</a></span> | <span class="time">days ago</span></div>
<div class="utility-right"><span class="comments">COMMENTS</span> | <span class="like">LIKE</span></div>
</li>
<?php
} else {
$error = "Sorry, that record already exists";
}
}
[/php]
我希望能够$error
从 php 脚本中吐出该变量以在 ajax 调用中发送回并显示在我的 HTML 中的元素中。我已经用谷歌搜索了 ajax 错误消息中的废话,但它们都与标头错误有关,而不是验证错误消息。我也没有使用 json_encode,除非有人想重做上面的那个 jquery 块,以便它作为 json 数据发送。
任何想法都会很棒!