【发布时间】:2012-03-08 03:45:28
【问题描述】:
我遇到的问题是了解如何使用 jQuery ajax 功能为数据库查询的多个场景返回结果。
这是我到目前为止的代码...这是 ajax 函数:
function checkDB(code)
{
$.ajax({
type: "POST",
url: "<?php bloginfo('template_url'); ?>/profile/check_code.php",
data: 'code='+code,
datatype: "html",
success: function(result){
if(result == 0)
{
$('#success').html( code + ' already exists.');
// alert('success');//testing purposes
}
else
{
$('#err').html( code + ' isnt in the database!!.');
//alert('fail');//testing purposes
}
alert(result);
}
})
}
这使用以下表单在提交时运行函数:
<form method="post" name="sc_ajax" onsubmit="checkDB(document.sc_ajax.sc_voucher_code.value); return false;">
...
</form>
在 check_code.php 中运行数据库查询:
$code = mysql_real_escape_string($_POST['code']);
$resultcode = mysql_query('select * from wp_scloyalty where code = "'. $code .'"' ) or die(mysql_error());
if(mysql_num_rows($resultcode)>0){
//Exists
echo 0;
}else{
//Doesnt Exist
echo 1;
}
到目前为止,我收到一条消息,说明输入的代码是否存在于数据库中。
我的问题是我将如何对查询做更多的事情。例如有更多的“if 语句”来测试数据库中的更多列?我想说“如果代码已经在数据库中,如果'redeemed'列设置为1(默认为0),则做一些不同的事情”?
目前我只能根据 ajax 回复中的函数(结果)输出内容,但是有没有更有效的方法来做我所做的事情?还是更有效的方式让当前的设置更灵活?
有点长的问题,抱歉,但我觉得我需要澄清一些事情,
谢谢大家:)
【问题讨论】:
-
您希望您的 PHP 代码根据数据库结果做更多事情,还是让 Javascript 代码做更多事情?
-
嗯,这就是我不确定的......我一直在寻找其他人使用 ajax 的方法,我刚刚决定使用 1 个 php 文件来运行 if 语句以返回一个数字,并且根据该数字抛出错误或其他内容。这是使用 ajax 处理来自查询的数据的最佳/最常用方法吗?
-
我想这取决于您希望您的应用程序做什么。您所拥有的是查看代码是否存在的完全合理的尝试。例如,如果 PHP 的扩展在数据库中找到代码,则可以输出列值。
-
首先,您可以使用这个美妙的form plugin。这将自动发布您的表单,而无需您选择各个字段。
-
@PaulGrime 是的,谢谢,我试试看。 @ juzerali,我听说过那个 jQuery 插件,但我想从较低级别了解更多关于 jQuery 的 ajax 知识,所以我认为使用这个简单的例子是一个好的开始。不过谢谢,将来会用它
标签: jquery mysql ajax database