0
試圖在這裏找到最佳解決方案...即使沒有找到記錄,也可以返回所有參數
如何返回服務器中沒有數據的參數?
,試圖爲每個參數這裏返回的數據發送多個參數到PHP腳本:
var cntnum = $('#cntnum').val().trim().toUpperCase().split("\n");
$.post('containerCheck.php', {cntnum:cntnum}, function(data)
{
var obj = JSON.parse(data);
$('#content').empty();
var htmlToInsert = obj.map(function(item)
{
return '<tr><td>'+item.CONTAINER_NUMBER+'</td><td>'+item.LOCATION+'</td></tr>';
});
$('#content').html(htmlToInsert);
});
的cntnum看起來就像這樣:「NUM111」,「NUM222」,「NUM333」
在服務器上,containerCheck.php看起來是這樣的:
<?PHP
$containers = $_POST['cntnum'];
$containersArray = preg_replace('/\n$/','',preg_replace('/^\n/','',preg_replace('/[\r\n]+/',"\n",$containers)));
$select = "SELECT CONTAINER_NUMBER, LOCATION FROM INVENTORY WHERE CONTAINER_NUMBER IN ('".implode("','",$containersArray)."')";
$query = mysqli_query($dbc, $select) or die(mysqli_error());
$out = array();
while($row = $query->fetch_assoc())
{
$out[] = $row;
}
echo json_encode($out);
mysqli_free_result($query);
?>
查詢從JavaScript的獲得通過,所有的3(或更多)的參數運行。
這是問題:如果其中一個參數沒有返回任何數據,PHP將只返回其後面有數據的值。
因此,容器NUM111和NUM222可能有數據,但NUM333可能沒有。即使3被髮送到服務器,我上面使用的代碼將只顯示2條記錄。
我需要能夠顯示所有的容器,而不管它後面沒有數據。
我希望這是有道理的。
對解決方案開放。先謝謝你。
編輯
如果用戶輸入NUM111,NUM222,NUM333只有第2例表中的任何數據,我希望能夠顯示哪些有數據:
*************************
* CONTAINER * LOCATION *
*************************
* NUM111 * NEW YORK *
*************************
* NUM222 * DELEWARE *
*************************
* NUM333 * NOT FOUND *
*************************