我从我的php文件返回数据,可以是json或其他任何东西。我想有条件地执行该功能。 这是php代码 -
<?php
ini_set("display_errors", 1);
require_once("db.php");
$resultnew = "SELECT DISTINCT(`item_name`) FROM item_master WHERE `item_name`='" . $_POST['key'] . "'";
$resultfinal = mysqli_query($conn, $resultnew);
if (mysqli_num_rows($resultfinal) > 0)
{
$sql = "SELECT * FROM `item_master` WHERE `item_name` = '" . $_POST['key'] . "' ";
$result=mysqli_query($conn,$sql);
while($row = mysqli_fetch_assoc($result))
{
$item_name = $row["item_name"];
$des = $row["item_description"];
$qty = $row["item_in_qty"];
$rate = $row["item_price"];
$unit = $row['item_unit'];
}
echo json_encode(array("item_name"=>$item_name,"des"=>$des, "qty"=> $qty, "rate"=> $rate, "unit"=> $unit ));
}
else{
echo "not ok";
}
?>
在上面的代码中,如果数据库中有任何匹配的值,那么它将返回json值,如果数据库中没有这样的值,那么它将返回“not ok”。
在此我正在应用这样的条件 -
function checkitems(targetID)
{
var items = $('#items_' + targetID).val();
if (items != "") {
$.ajax({
type: 'post',
url: 'itemcheck.php',
data: {key: items},
dataType: 'json',
success: function(data) {
if (data == "not ok") {
$('#myitemmodal').modal("show");
} else {
var tr = $(this).closest('tr'); // here is the code for retrieving the values. i think here i need to make some changes
$('#price_' + targetID).val(data.rate);
$('#size_' + targetID).val(data.des);
$('#qty_' + targetID).val(data.qty);
$('#unit_' + targetID).val(data.unit);
}
}
});
}
}
现在,我面临的问题是它总是只进入else-condition而不是if-condition.Maybe因为我已经提到数据类型为json。当我删除数据类型:json时,它表现不佳。 我该如何处理这种情况。让我知道你是否需要其他任何东西。 提前谢谢。
答案 0 :(得分:2)
由于您希望获得JSON,您应该返回JSON,并且"not ok"
不是有效的JSON。
<?php
...
if (mysqli_num_rows($resultfinal) > 0) {
...
echo json_encode(
array("data" =>
array("item_name"=>$item_name,"des"=>$des, "qty"=> $qty, "rate"=> $rate, "unit"=> $unit )
)
);
} else {
echo json_encode(
array("data" => "not_ok")
);
}
然后抓住它
success: function(data) {
if ("data" in data &&
typeof data.data == "string" &&
data.data.trim() == "not ok") {
$('#myitemmodal').modal("show");
} else {
答案 1 :(得分:0)
如果你要请求json,那么你应该格式化你的&#34;不好的&#34;作为json的回应。它可以是简单的事情:
{&#34;错误&#34;:&#34;不好&#34;}
让你的js测试是否存在错误密钥。