簡體   English   中英

如何使我的jQuery數據庫ajax​​請求更加有效和靈活?

[英]How can I make my jQuery database ajax request more efficient and flexible?

我有一個jQuery ajax數據庫查詢,我想知道如何使它更靈活,或者在我剛剛開始學習ajax並需要一點建議的情況下,是否有人可以對更好的方法有所了解。

這是我到目前為止的內容:

        <form method="post" name="sc_ajax" onsubmit="checkDB(document.sc_ajax.sc_voucher_code.value); return false;">
     ...
        </form>

設置表單后,在提交時它將運行以下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 and has not been redeemed...');
            // alert('success');//testing purposes
        }
        else if(result == 2)
        {
            $('#err').html(  code + ' already exists and has already been redeemed....');
            //alert('fail');//testing purposes
        }else if(result == 1){
            $('#err').html(  code + ' redeem code doesnt exist');      
        }

        alert(result);      
      }
  })

}

因此,這是從一個名為“ check_code.php”的單獨文件獲得的結果:

    $code = mysql_real_escape_string($_POST['code']);  

$resultcode = mysql_query('select * from wp_scloyalty where code = "'. $code .'"' ) or die(mysql_error());  


$redeemed=array();
while($info = mysql_fetch_array( $resultcode )) 
{ 

    $redeemed[$info["code"]] = $info["redeemed"];

} 

if(mysql_num_rows($resultcode)>0 && $redeemed[$code] == 0){
    //Exists so change redeemed code to 1 
    echo 0;   

}elseif(mysql_num_rows($resultcode)>0 && $redeemed[$code] == 1){
    //Exists but already redeemed, so throw error
    echo 2;

}else{  
    //Doesnt Exist
    echo 1;  
}  

順便說一句,代碼可以正常工作……但是我的問題是……我目前正在運行一堆來自check_code.php文件的“ if語句”,但是有更好的方法可以做到這一點,因為我一直在尋找有關使用Ajax和其他人的方法的技巧似乎更加混亂,而且代碼混亂。 我在這里做錯什么了嗎?

謝謝大家!

應該首先計算行數,因為如果查詢返回零行,則訪存數組將引發錯誤。 如您所見,您不止一次獲取結果數組。 沒必要那樣做。 在獲取結果數組之前將其存儲,並在以后用於比較。 關於您的ajax,請在jQuery中使用cache:true加快速度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM