2012-02-16 18 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

相關問題