2017-05-26 51 views
0

當我想指定我希望僅在存在搜索結果時纔會發生代碼時,是否有人知道如何執行if語句?如果聲明:如何編碼「if」以便在出現匹配時工作

例如,當用戶搜索餡餅配方並且有結果時,應該引發if。但是,當用戶搜索沒有得到任何結果的東西時,應該完成else

var searchword = $('#search').val(); //search is id for the input field 

if (searchword ...?) { 
// there's a hit for the search and code continues 
} 

else { 
// there aren't any hits so this code continues 
} 

我第一次嘗試使用if (searchword > 0) { }但是這不是真的做我想做的事情。因此,用戶應該能夠在輸入字段上書寫,但是如果有搜索結果,那麼應該完成if,如果沒有,那麼else

下面的代碼的孔部分,如果它有助於理解:

function() { 
     var searchword = $('#search').val(); 

     if (// statement here) { 

      $.ajax({ 
      url: "https://webservice.informatik.umu.se/webservice_livsmedel/getlivsmedel.php", 
      dataType: "jsonp", 
      jsonp: "getLivsMedel", 
      data: { 
       callback: 'getLivsMedel', 
       namn: searchword 
      } 
      }); 

     } else { 
      $("tbody").empty(); 
     } 
} 

function getLivsMedel(response) { 

    var livsmedel = response.livsmedel; 

    livsmedel.forEach(function (produkt) { 
     $('#tabell > tbody').append('<tr>' + '<td>' + produkt.namn + '</td>' + '<td>' + produkt.energi + '</td>' + '<td>' + produkt.kolhydrater + '</td>' 
+ '<td>' + produkt.protein + '</td>' + '<td>' + produkt.fett + '</td>' + '</tr>'); 
    }); 

} 
+2

那是Ajax調用的東西做搜索?如果是這樣,它不應該在'if'語句中,它應該先運行,然後它的回調(你不顯示)應該有一個'if'來做一些事情,取決於是否有結果。 – nnnnnn

+0

是的,它是阿賈克斯。你確定?我爲這個問題添加了回調函數。 ' – user7906611

+0

只是爲了澄清,你想在if語句中測試什麼?搜索字符串的長度或結果的數量? –

回答

0

更新爲每個評論

function() { 
       var searchword = $('#search').val();  

        $.ajax({ 
        url: "https://webservice.informatik.umu.se/webservice_livsmedel/getlivsmedel.php", 
        dataType: "jsonp", 
        jsonp: "getLivsMedel", 
        data: { 
         callback: 'getLivsMedel', 
         namn: searchword 
        } 
        }); 
       } 



function getLivsMedel(response) { 
    if(!$.isEmptyObject(response)){ 
     var livsmedel = response.livsmedel; 

     livsmedel.forEach(function (produkt) { 
      $('#tabell > tbody').append('<tr>' + '<td>' + produkt.namn + '</td>' + '<td>' + produkt.energi + '</td>' + '<td>' + produkt.kolhydrater + '</td>' 
    + '<td>' + produkt.protein + '</td>' + '<td>' + produkt.fett + '</td>' + '</tr>'); 
     }); 
    } 
    else { 
      $("tbody").empty(); 
     } 
    } 
+0

這不是我想要的。我試圖讓用戶寫一個搜索,如果有結果,那麼就執行'if'。如果沒有結果,那麼'else'。因此,如果沒有結果,'lenght> 0'用戶不會得到'else'。只有在用戶沒有寫任何東西的情況下。 – user7906611

+0

感謝您編輯的版本。但它仍然無法正常工作。 'else'部分沒有被執行。我甚至試過'else {alert(「hello」); }'並沒有工作。並且'$(「tbody」)。empty();'。 – user7906611

+0

您是否每次都收到回覆?嘗試一些沒有結果的關鍵字 –

0

看看這是你在找什麼。

$('#sok-button').click(function() { 
 
    var searchQuery = $('#livsmedelsSokOrd').val(); 
 

 
    $.ajax({ 
 
    url: 'https://webservice.informatik.umu.se/webservice_livsmedel/getlivsmedel.php', 
 
    data: { 
 
     namn: searchQuery 
 
    }, 
 
    type: "POST", 
 
    dataType: "jsonp", 
 
    success: function(data) { 
 
     $('#tabell > tbody').html(''); 
 
     getLivsMedel(data); 
 
    }, 
 
    error: function(req, status, err) { 
 
     console.log('something went wrong'); 
 
    } 
 
    }); 
 

 
}); 
 

 

 
function getLivsMedel(response) { 
 

 
    var livsmedel = response.livsmedel; 
 

 
    if (livsmedel.length > 0) { 
 
    livsmedel.forEach(function(produkt) { 
 

 
     $('#tabell > tbody').append('<tr>' + '<td>' + produkt.namn + '</td>' + '<td>' + produkt.energi + '</td>' + '<td>' + produkt.kolhydrater + '</td>' + 
 
     '<td>' + produkt.protein + '</td>' + '<td>' + produkt.fett + '</td>' + '</tr>'); 
 

 
    }); 
 
    } else { 
 
    $('#tabell > tbody').html('None'); 
 
    } 
 
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" class="" id="livsmedelsSokOrd" value="" /> 
 
<button id="sok-button"> 
 
Search 
 
</button> 
 

 
<span id="tabell"> 
 

 
</span> 
 

 
<table id="tabell"> 
 
    <thead> 
 
    <tr> 
 
     <th>Namn</th> 
 
     <th>Energi</th> 
 
     <th>kolhydrater</th> 
 
     <th>Protein</th> 
 
     <th>Fett</th> 
 
    </tr> 
 
    </thead> 
 
    <tbody></tbody> 
 

 
</table>