Jquery脚本没有显示在firebug或fire中

时间:2013-03-18 06:18:24

标签: php jquery mysql ajax firebug

我正在尝试通过使用jquery / ajax脚本来获取下拉框以更改第二个下拉框。 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>

然后第二个下拉框就是

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

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

调用内联函数并不好......因为Web 2.0标准建议使用不显眼的JS而不是一个属性....查看为什么here .. 其他thigs ..使用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;

<强>更新

看起来你的select select中仍然有onchange="ajaxfunction(this.value)"这个不需要它,而javascript中的ajax函数也是......

<select name="front-size" >    
                   //----^ here remove that

答案 1 :(得分: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
});

答案 2 :(得分:0)

使用jQuery.on(),我们可以在动态加载的内容上添加事件。

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

[name^="front-"]这将选择所有SELECTnamefront-开头。