2014-06-09 3 views
0

Я пытаюсь извлечь значение из базы данных mysql на основе элемента Food, выбранного в texbox в элементе питания, и отобразить его в текстовом поле цены единицы. Я использовал событие размытия в текстовом поле «Элемент товара», чтобы вызвать метод getJSON и извлечь значение из базы данных. Я вижу ответ, полученный от getJSON в Firebug, но ответ не отображается в текстовом поле. Код wriiten нижеОтвет Json, не отображающий значение в текстовом поле

<div class='col-sm-3'>  
    <div class='form-group'> 
    <label>Food Item</label> 
     <input class="form-control" id="item_name" name="itemname" autocomplete="off" size="30" type="text" required="true"/> 
    </div> 
</div> 
<div class="col-md-1"></div> 
<div class='col-sm-1'>  
    <div class='form-group'> 
    <label>Quantity</label> 
    <input class="form-control" id="quantity" name="quantity" autocomplete="off"  type="number" min="1" max="100" required="true"/> 
    </div> 
</div> 
<div class="col-md-1"></div> 
<div class='col-sm-1'>  
    <div class='form-group'> 
    <label>Unit price </label> 
    <input class="form-control" id="unit_price" name="unitfoodprice" type="number" /> 
    </div> 
</div> 

<div class="col-md-1"></div> 
    <div class='col-md-1'> 
    <div class='form-group'> 
     <br> 
     <button type="button" id="additems" name="additems" class="btn btn-sm btn-primary">Add Items</button> 
    </div> 
    </div>              
    </div 

Мой Jquery код

//To get the food item price 
    $(document).ready(function() { 

     $('#item_name').blur(function() { 

      if( $("#item_name").val() !== "") 
     { 
      //To pass the customer details and fetch related details 
      $.getJSON("getfooditemprice.php", {fooditemname: $('#item_name').val()}, function(data){ 

          if(data === "empty") 
          { 
           //$('#myModal').hide(); 
           alert('No Price exists for the particular Food item');       
           $("#item_name").val(''); 
           $("#item_name").focus(); 
           return false;       
          } 
          var foodprice = data['price']; 
          $('#unit_price').val(foodprice); 

        });     

     } 

     }); 
}); 

Мой PHP код

require 'core/init.php'; 

if (isset($_REQUEST['fooditemname'])) { 

$query = $_REQUEST['fooditemname']; 
    $sel_fooditemprice = "SELECT price FROM fooddetails WHERE itemname = '$query'"; 
    $stmt = $db->prepare($sel_fooditemprice); 
    $stmt->execute(); 

    //this is how to get number of rows returned 
    $num = $stmt->rowCount(); 
    if ($num) 
    { 
     while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
     $array[] = $row['price']; 
     } 
     echo json_encode ($array); //Return the JSON Array 
    } 
    else 
    { 
     $array[] = "No Price exists for this food item"; 
     echo json_encode($array); 
    } 
} 
+0

Является ли проблема только с unit_price или со всеми текстовыми полями? – AppleBud

+0

Как вы указали, unit_price 'textbox' как' number', а результат json может появиться как строка. Попробуйте изменить тип вывода ti '(int)' – prava

+0

@AppleBud - я пытаюсь заполнить только текстовое поле unit_price, а также проблема только с unit_price – Rams

ответ

1
var foodprice = data['price']; 
$('#unit_price').val(foodprice); 

данных является JSON объект, так что вам нужно разобрать его и затем назначьте каждую цену некоторым элементам html, например:

$.getJSON("getfooditemprice.php", {fooditemname: $('#item_name').val()}, function(json){ 
    if(json.length == 0){ //check if is data returned 
     //$('#myModal').hide(); 
     alert('No Price exists for the particular Food item'); 
     $("#item_name").val(''); 
     $("#item_name").focus();    
    }else{ 
     $.each(json, function(i, item) { 
      price = item; 
      //do sometinh with price 
      //example 
      alert(price); 
     });​ 
    } 
});  

затем редактировать вам PHP скрипт и изменения:

$array[] = "No Price exists for this food item"; 

к этому:

$array[] = ""; 

Это потому, что if(json.length == 0) всегда будет ложным, потому что сообщение один пункт.

+0

Внедрен ваш код, но ошибка с неправильным символом (цена) в конструкции else – Rams

+0

Спасибо YOU Cristian за то, что вы дали представление о функции $ .each(). Правильно работает. – Rams

Смежные вопросы