2016-03-26 30 views
1

クエリ結果(単なる製品名とその単価のマッピング)をJSONファイルに出力する次のPHPコードがあります。 PHPコードは、ドロップダウンリストにも入力します。選択したドロップダウン値に基づいてテキストフィールドに値を設定します

私はJSONファイルを作成し、ドロップダウンリストに値を設定する際に問題はありません。私の主な関心事は次のとおりです。

ユーザがドロップダウンリストから製品名を選択すると、製品の対応単価を表示するために別のテキストフィールドを自動入力するにはどうすればよいですか?

<label for="p_name">Product Name</label> 
<div class="input-group"> 
    <div class="input-group-btn"> 
    <input type="text" class="form-control" name="p_name" id="p_name" style="width: 300px;" required> 
    <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"> <span class="caret"></span></button> 
    <ul class="dropdown-menu" role="menu" style="width: 300px;"> 
     <?php 
      $connstring = pg_connect("host=localhost dbname=myDB user=postgres password=password") 
      or die('Could not connect: ' . pg_last_error()); 
      $select = "SELECT p_name, unit_price FROM Product"; 
      $executeSelect = pg_query($select) or die('Postgresql: ' . pg_last_error()); 

      $result = array(); 

      while ($line = pg_fetch_array($executeSelect, null, PGSQL_ASSOC)) { 

       $index = 0; 
       foreach ($line as $col_value) { 
        if ($index % 2 == 0) 
        { 
         //Display Product Name in the drop down list 
         echo "<li><a>$col_value</a></li>"; 
         $index++; 
        } 
        else 
        { 
         $index++; 
        } 


       } 
       //Store query output to the result array 
       $result[] = $line; 

      } 

      //Save the query output to a JSON file 
      file_put_contents('C:\Apache\htdocs\productList.json', json_encode($result), LOCK_EX); 


      pg_free_result($executeSelect); 
      pg_close($connstring);                
     ?> 
    </ul> 
    </div><!-- /btn-group --> 
</div><!-- /input-group -->  


<label for="unit_price">Unit Price</label> 
<input type="number" class="form-control" name="unit_price" id="unit_price"></input> 

答えて

0

Javascriptを使用して、製品の該当単価を表示させます。

JSONファイルをサーバーにロードするためのJQuery。 $.getJSON()の詳細については

$.getJSON('products.json', function(data) { 
    // process the data 
}); 

this link

ヒントチェックアウト:より良いドキュメントのonReady()イベントで一度全体JSONファイルをロードし、製品名]ドロップダウンボックスを移入します。 私の経験ではPHPを使うのは良い選択ではありません。

+0

なぜJSONファイルをサーバーにロードしますか?すでにJSONファイルをクライアント側で解析するべきではないですか? – wowomg

+0

JSONファイルは 'htdocs /'フォルダ内にあります。つまり、サーバ側に存在します。処理を行うには、ファイルをクライアント側にロードするだけです。また、クライアント側はローカルファイルシステムにアクセスすることはありません。 –

+0

ありがとうございますが、どうすればいいですか?申し訳ありませんが、私は非常にこれに新しいです – wowomg

関連する問題