如何在json中获取第二个数组?

时间:2014-01-02 01:46:41

标签: javascript php json

我使用json和php自动完成。它工作,但现在我需要从json获取第二个数组。

这是我在source.php上的脚本

<?php

$req = "SELECT namaBarang, harga FROM masternamabarang WHERE namaBarang LIKE '%".$_REQUEST['term']."%' ";

       $query = mysql_query($req);

       while($row = mysql_fetch_array($query))
       {
           $results[] = array('label' => $row['namaBarang'],'harga' => $row['harga']);
       }

       echo json_encode($results);  
?>

和autocomplate.php的这个脚本

<html>
   <head>

    <script src="js/jquery-1.9.1.js"></script>
    <script src="json/js/jquery-ui-1.10.3.js"></script>
    <script>
      $(function() 
      {
       $( "#NAMA" ).autocomplete({
           source: 'source.php'
      });
      });
    </script>

    <script>
    function ambil()
    {
    var x = document.getElementById('NAMA').value;

    document.getElementById('HARGA').value=x;   
    }
    </script>
</head>
<body>
  <form>
    <input type="text" name="NAMA" size="50" id="NAMA" onchange="ambil()"/><br>
    <input type="text" name="HARGA"  size="50"  id="HARGA" />

  </form>
</body>

自动完成效果很好,但我需要的是,从JSON数组中获取第二个数组[HARGA]并将其填充到文本框HARGA上。

感谢您的回答。

2 个答案:

答案 0 :(得分:1)

echo json_encode($results[1]); 

这是你想要的吗?

答案 1 :(得分:1)

你的script.php工作正常。它给你json结果像

[{"label":"laba","value":"vala"},{"label":"labb","value":"valb"}]

你可以像这样在浏览器中记录(javascript)结果

console.log(data[0].value); // array index 0 for first row, you can try 1,2 etc...

您可能需要选择方法来绑定所选内容:

$( "#search" ).autocomplete({
      source: data,
      select: function( event, ui ) {
        console.log(ui); // log selected data row
        $('#mySelectedInput').val(ui.item.value); // bind value wherever you like
      }
 });

资源
http://api.jqueryui.com/autocomplete/#event-select
http://jqueryui.com/autocomplete/#custom-data