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 *
*************************