2

jquery/ajaxスクリプトを使用して2番目のドロップダウンボックスを変更するドロップダウンボックスを取得しようとしています。Firebug は Jquery が動作していることを示していますが、私のスクリプトはまったく表示されません。

<script type="text/javascript">
        function ajaxfunction(parent)
        {
            $.ajax({
                url: '../functions/process.php?parent=' + parent;
                success: function(data) {
                    $("#sub").html(data);
                }
            });
        }
    </script>

process.php は単なる MySQL クエリです (動作します)。

最初のドロップダウン ボックスには MySQL クエリが入力されています

<select name="front-size" onchange="ajaxfunction(this.value)">
//Query
</select>

そして、2番目のドロップダウンボックスは

<select name = "front-finish" id="sub">
</select>

どうすればこれを解決できますか?

4

3 に答える 3

0

あなたのprocess.phpでこのように与えます

echo "<select name='front-finish' id='sub' onchange='ajaxfunction(this.value)'>";

このように、ajaxを介して新しく作成された選択ボックスに「onchange」機能を追加する必要があります

または、 onchange 関数を削除して次のように書くことができます

$("select[name^='front-']").live('change',function(){
   //Do your ajax call here
});
于 2013-03-18T06:21:51.170 に答える
0

インライン関数の呼び出しはまったく良くありません... Web 2.0標準では、onevent属性ではなく目立たないJSを使用することが推奨されているため....ここで理由を確認してください..他のもの.. ajaxを使用する正しい方法は、型とデータのajaxオプションを使用することですコントローラーで値を送信するには..

<script type="text/javascript">
    $(function(){
    $('select[name="front-size"').change(function()
    {
        $.ajax({
            url: '../functions/process.php',
            type:'get',
            data:{'value' : $(this).val()}, 
            dataType:"html",   //<--- here this will take the response as html... 
            success: function(data) {
                $("#sub").html(data);
            }
        });
    });
 });
</script>

そしてあなたのproces.phpは..

 <?php
   //db query ...thn get the value u wanted.. 
   //loop through it..
   $optVal .= "<option value="someDbValue">some DDB values</option>";
   // end loop

   echo $optValue;exit;

更新しました

onchange="ajaxfunction(this.value)"選択した削除にまだこれが必要ではないことと、javascriptのajaxfunctionが残っているようです...

<select name="front-size" >    
                   //----^ here remove that
于 2013-03-18T06:25:38.380 に答える
0

これを使用jQuery.on()すると、動的に読み込まれたコンテンツにイベントを追加できます。

$('select[name^="front-"]').on('change',function(e){
    e.preventDefault();
    var value = $(this).val();
    ajaxfunction(value);
});

[name^="front-"]これにより、で始まるすべてのSELECTボックスが選択されます。namefront-

于 2013-03-18T06:26:29.443 に答える