簡體   English   中英

PHP AJAX通知,如果MySQL查詢沒有返回任何行

[英]PHP AJAX Notifications if MySQL query returns no rows

情況

我有一個工作腳本,它向get_code.php發送一個ajax請求。 此腳本從主頁面 - index.php get_code.php腳本在MySQL數據庫中查詢一行,然后將數據發送回index.php

目前的代碼

index.php中的 jQuery

<script type="text/javascript">
$("#CMTCode").click(function(){
    var cde = $("#cmtcodeinput").val();
        $.ajax({
            method:'POST',
            url:'get_code.php',
            data: {va_code:cde},
            dataType: 'json',
            success: function(output_string){
                    $('#rtable').append(output_string);
                    $("#cmtcodeinput").val('');
                    var prc = $(".price:last");
                    prc.focus();
            }
        });
});    
</script>

PHP腳本get_code.php

<?php
include('dbc.php');
$code = $_POST['va_code'];
$cq = mysql_query("SELECT * FROM variants where va_code='$code'")or die(mysql_error());
  if(!$cq){
mysql_close();
echo json_encode('There was an error running the query: ' . mysql_error());
  }elseif(!mysql_num_rows($cq)){
mysql_close();
echo json_encode('No results returned');
  }else{
$output_string = '';
$output_string .= '<tr>';
while($row = mysql_fetch_assoc($cq))
{        
     $output_string .= '<td>'.$row['cmtcost'].'</td>';
//etc. etc. lots more output here
}
     $output_string .= '</tr>';
}
mysql_close();
echo json_encode($output_string);
?>

問題

但是,如果未找到查詢結果,則頁面上不會返回任何內容以通知用戶。 理想情況下,我想打開一個模態,或顯示一個div ,我可以在其中使用用戶輸入的數據。 我只是不能為我的生活工作如何檢查$cq返回沒有結果,如果是,那么在index.php上顯示一些內容,就像通知說'你的代碼沒找到'。

感謝任何幫助

您可以返回結果標志。 這是一個很好的邏輯,易於理解。

如果沒有找到行:

die(json_encode(['result' => false, 'error' => 'No code was found']));

如果找到一些代碼:

die(json_encode(['result' => true, 'output' => $output_string]));

並在js:

...
success: function(data){
    if (!data.result) {
        alert(data.error);
    } else {
        $('#rtable').append(data.output);
        $("#cmtcodeinput").val('');
        var prc = $(".price:last");
        prc.focus();
    }
}
...

希望能幫助到你。

暫無
暫無

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

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