2016-09-17 1 views
0

json 또는 다른 어떤 것일 수있는 PHP 파일에서 데이터를 반환합니다. 그리고 조건부로 함수를 수행하려고합니다. 데이터베이스에서 일치하는 값을 그 때 JSON 값을 반환하고 데이터베이스에서 그러한 값이 없으면 다음가 OK '리턴이 있으면 여기 은 상기 코드에서반환 된 데이터 유형에 따라 다른 조건이 적용되는 경우

<?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"; 

} 


?> 

코드 -은 PHP이고 ". 내가 직면하고 이제 this-

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); 
     } 
     } 
     }); 
    } 
} 

, 문제 등이에

내가 신청하는 조건은-condition.Maybe 경우 내가 언급 한 때문에 항상 만하지의 다른 조건으로 가고 있다는 것입니다 json이 될 데이터 유형. 그리고 데이터 유형 json을 제거하면 성능이 좋지 않습니다. 어떻게 그런 조건을 다루는가. 필요한 것이 있으면 알려주지. 미리 감사드립니다.

답변

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") 
     ); 
    } 

그리고 당신은 당신이 JSON 응답과 같이 "확인되지"를 포맷해야 JSON을 요청하는 경우 다음

success: function(data) { 

    if ("data" in data && 
     typeof data.data == "string" && 
     data.data.trim() == "not ok") { 

     $('#myitemmodal').modal("show"); 

    } else { 
+0

아니요. .. 작동하지 않습니다 .. @ adeneo –

+0

그리고'console.log (data)'를하면 어떻게됩니까? – adeneo

+0

그것은 일하고 .. 감사합니다. 유일한 문제는'data.data.trim() == "not ok"'data.data.trim() == "not_ok"' –

0

을 잡을 수있어. { "오류": "확인되지"}

:

그리고 당신의 JS 오류 키의 존재를 테스트해야이 같은 간단한 될 수 있습니다.

관련 문제