如何每20秒加载$ .ajax(jquery)对iframe的响应?

时间:2013-02-14 00:08:13

标签: javascript jquery iframe

如何在我的页面中加载此jquery获取响应中间iframe? php脚本从mysql db加载一些数据?在这种情况下,我没有传递任何数据到PHP所以我需要提出获取或发布请求?我的代码在alert中显示jquery响应,但是没有将它加载到iframe中!

    setInterval(function() {

      $.ajax(
    {
        type: 'GET',
        url: './getDataFromMySQLdb.php',
        //data: $("#myform").serialize(),

         data: {
         title: 'test',
          // wrapper: 'testing'
         },
                success: function (good)
                {
                  //handle success

                      alert(good);
                    $("#middle").attr('src',+good); //change url
                },
                failure: function (bad)
                {
                   //handle any errors

                  alert(bad)

                }


    });
    }, 20000);

<iframe name="top" src="blank.php" id="top"  scrolling="no" noresize frameborder="0" marginwidth="0" marginheight="0" width="100%" height="79"></iframe>
<iframe NAME="middle" src="blank.php" id="middle" noresize frameborder="0" marginwidth="0" marginheight="0" width="100%" height="238" scrolling="auto"></iframe>
<iframe NAME="foot" src="blank.php" id="foot"  scrolling="no"  noresize frameborder="0" marginwidth="0" marginheight="0" width="100%" height="200"></iframe>

2 个答案:

答案 0 :(得分:3)

你可以每20秒直接重新加载iframe,不需要$ .ajax():

setInterval(function(){
   $("#middle").attr('src', './getDataFromMySQLdb.php');
}, 20000);

但是,我认为最好不要使用iframe。 相反,只需使用具有相同id ='middle'的div,并将结果直接加载到其中:

setInterval(function(){
   $("#middle").load('./getDataFromMySQLdb.php');
}, 20000);

答案 1 :(得分:2)

您的AJAX脚本中似乎存在一些错误,但您可以正确使用GET请求。请参阅下面的内容,了解您可能正在寻找的内容。此外,我不明白为什么要将此信息加载到iFrame中?我会把它加载到div中。我可能会完全误解你想要实现的目标,所以下面可能没什么用。

setInterval(function() {
      $.ajax({
        type: 'GET',
        url: '../getDataFromMySQLdb.php',
        data: '',
        success: function (data){
           $("#middleDiv").html(data);
        },
        failure: function (){
           alert('Error message');
        }
    });
}, 20000);

<div id="middleDiv"></div>