如何每隔20秒加载$.ajax(jquery)响应到iframe



我如何加载这个jquery以获得对页面中中间iframe的响应?php脚本从mysql-db加载一些数据?在这种情况下,我不会将任何数据传递给php,所以我需要进行get或post请求吗?我的代码在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>

您只需每隔20秒直接重新加载iframe,无需$.ajax():

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

然而,我认为你最好不要使用iframe。相反,只需使用一个id="middle"的div,并将结果直接加载到其中:

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

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>

最新更新