2012-02-16 66 views
2

我遇到的问题是了解如何使用jQuery ajax功能为多个数据库查询方案返回结果。多次使用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回复中的函数(结果)输出东西,但是有没有更有效的方法来完成我所做的工作?或者更有效的方式使当前的设置更加灵活?

长的问题,很抱歉,但我觉得我需要清理一些东西,

谢谢你们:)

+0

你想基于数据库的结果,或者Javascript代码做更多的PHP代码做多? – 2012-02-16 19:08:25

+0

那么这就是我不确定的...我一直在为其他人使用ajax的方法,我刚刚决定使用1 php文件来运行if语句返回一个数字,并抛出一个错误或基于那个数字。这是使用Ajax查询数据的最佳/最常用的方法吗? – JamesG 2012-02-16 19:21:56

+0

我想这取决于你想要你的应用程序做什么。你有什么是完全合理的尝试,看看是否存在代码。例如,如果PHP的扩展名在数据库中找到代码,则可以输出列值。 – 2012-02-16 19:28:00

回答

1

在我看来,你真正想要的发送方式的位数据以JavaScript可以解释的方式返回给客户端。为此,我建议使用PHP中的json_encode将JSON发送回客户端。

如果你想学习如何正确地做ajax,我会遵循这些链接。你几乎在那里。

http://www.w3schools.com/json/default.asp了解服务器端的JSON

使用json_encode。

http://php.net/manual/en/function.json-encode.php

+0

辉煌的伴侣,谢谢。在尝试了一些好的东西之后,我们可以用正确的方向指出这个:) – JamesG 2012-02-16 21:38:40

相关问题