使用jQuery AJAX检索数据而不在php中重新加载页面

时间:2015-11-21 06:25:35

标签: javascript php html mysql ajax

我尝试在点击选择选项时停止刷新页面,但是当我停止刷新页面时,数据无法获取。

这里是代码

age number(3)

当我删除Onchange =' document.frmtopdevotees.submit()'然后页面停止刷新而不是数据更改。

2 个答案:

答案 0 :(得分:0)

将ajax中的name更改为id

$('#seldrp').onchange(function(){
   ^     ^
// ajax here                          
});

你在ajax中有语法错误。

   var themonth = $('#seldrp').val();
   var topdevotee = $('#topdevotees').val();//topdevotess should be the id of 2nd select box.
   $.ajax({            
        type: 'post',
        data: {
            topdevotees: topdevotees,
            themonth: themonth
        },
        async:false,// this line for waiting for the ajax response.
        url: "topuser_load.php?topdevotees=" + topdevotees + "&themonth=" + themonth,
        success: function (response) {
            $('themonth').append(response);
            $('#frmtopdevotees').submit();

        }
    });

答案 1 :(得分:0)

从您的代码中我可以理解的是,只要您选择的任何选项发生更改,您就想要在不刷新页面(AJAX)的情况下触发服务器调用。

发布的代码中存在错误。以下是我的观察 -

  1. 整个页面中只能有一个ID。你曾在几个地方使用'seldrp'。

  2. 如果你想要AJAX功能,你应该避免调用表单的submit()函数。

  3. AJAX语法错误,应该如下 -

    $.ajax({
        url : "topuser_load.php?topdevotees=" + topdevotees + "&themonth=" + themonth,
        method: "post",
        data: {
            topdevotees: topdevotees,
            themonth: themonth
        }, // can even put this in variable and JSON stringify it
        success: function (response) {
            $('themonth').append(response);
    
        }
    });
    
  4. 现在来解决方案部分: 我会这样做 - 如下 - 1.只需听听JQUERY中的选择更改 2.触发选择更改后,将进行AJAX调用并返回响应。 修改后的代码是 -

    <script>
    
        $('select').on('change', function (e) {
            var month = $('#seldrp1').val();
            var topdevotee = $('#seldrp2').val();
    
            // call ajax here -
    
            $.ajax({
                url: "topuser_load.php?topdevotees=" + topdevotee + "&themonth=" + month,
                method: "post",
                data : JSON.stringify({
                    topdevotees: topdevotee,
                    themonth: month
                }),
                success : function(response){
                    $('themonth').append(response);
                },
                error : function(err){
                    // handle error here
                }
            });
    
        });
    
    </script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
    echo "<form name='frmtopdevotees'>
        <h4>select month  <select id='seldrp1' name='themonth'>
    
            $optionsmonths
        </select>
            <select name='topdevotees' id='seldrp2'>
                <option value=10 $M10>Top 10</option>
                <option value=20 $M20>Top 20</option>
                <option value=50 $M50>Top 50</option>
                <option value=100 $M100>Top 100</option>
            </select>   </h4>
    </form>";
    ?>