2016-11-18 15 views
0

フォームで2つのドロップダウンを使用して検索しています。 2番目のドロップダウン値は、最初のドロップダウン値の選択に基づいて変更されます。 ajaxリクエストは行っていますが、PHPスクリプトから何らかの値を返さないことがあります。コードの変更に関する提案はありますか?jquery ajaxを使用して選択ドロップダウン値を動的に変更します

search.php

<select name="shop_name" id="shop_name"> 
        <option value="blank">Select one</option> 
        <?php 
        $searchItem = new dbhandler(); 
        $shopData = $searchItem->all_data('food_shops'); 
        $i = 0; 
        foreach($shopData as $sd) { 
        ?> 
        <option value="<?php echo $shopData[$i]->r_id; ?>"><?php echo $shopData[$i]->name; ?></option> 
        <?php $i++; } ?> 
</select> 

script.js

<script type="text/javascript"> 
$(document).ready(function() 
{ 
    $("#shop_name").change(function() 
{ 
    var id=$(this).val(); 
    var dataString = 'id=' + id; 
$.ajax 
({ 
    type: "GET", 
    url: "dynamic_select.php", 
    data: dataString, 
    success: function(data) 
    { 
    $("#location").html(data); 
    } 
    }); 

    }); 

    }); 

dynamic_select.php

<?php 

if($_GET['id']) { 

    $crs = $_GET['id']; 
?> 

    <select name="location" id="location"> 
<?php 
    $searchItem = new dbhandler(); 
    $searchItem->find('food_shops' , 'r_id', $crs); 
    $data = $searchItem->data(); 
    $j = 0; 
    foreach($data as $d) { 
    ?> 
    <option value="<?php echo $data[$j]->address; ?>"><?php echo $data[$j]->address; ?></option> 
    </select> 
<?php $j++; } } ?> 

all_dataは()SELECT * FROM table_nameを照会しますと見つけるには、()SELECT * FROM table_name WHERE r_id = $crs

+1

あなたはあなたのAJAX呼び出しのための 'url'オプションがありません。 – Qsprec

+0

あなたのajaxでurlを追加し、関連する値を取得するためにidパラメータを渡す必要があります。 –

+0

^^^^ + '$("#location ")replaceWith(data);' – Satpal

答えて

0
<script type="text/javascript"> 
    $(document).ready(function() 
    { 
     $("#shop_name").change(function() 
    { 
     var id=$(this).val(); 
     var dataString = 'id='+ id; 

    $.ajax 
    ({ 
     type: "GET", 
     data: dataString, 
     cache: false, 
     url : "dynamic_select.php", 
     success: function(data) 
     { 
     $("#location").html(data); 
     } 
     }); 

     }); 

     }); 
    </script> 

は、あなたのAJAXスクリプトでIDとURLを追加し、必要に応じてdynamic_select.phpパスを変更照会します。

+0

まだ動作していません –

+0

@ Alfizamalekデータを2回渡しています。 1つは 'data'オプションに、もう1つは 'url'オプションの最後にあります。 – Qsprec

1

あなたは次のようなインスペクタであなたの応答を確認することができます。あなたのページではあなたの応答に何が入っているかをチェックするだけです。インスペクタネットワーク> xhrを開き、最初のドロップダウンから値を選択してください。ドロップダウンを選択すると、dynamic_select.phpが呼び出され、インスペクタに表示され、応答を選択するだけで、そこの応答を見ることができます。

enter image description here

+0

私は...... URLが正常に見える..... dynamic_select.php?id = 7811178 –

+0

dynamic_select.phpのレスポンスは何ですか?id = 7811178? –

+0

あなたの助けを借りて@ Alfiza ...解決策を見つけました。私はクラスのための自動ロードファイルを含めていませんでした。それを含め、正しいURLがPHPスクリプトに行くことを確認しました。ありがとう –

関連する問題