2

我如何加载这个 jquery 来响应我页面中的中间 iframe?php脚本从mysql db加载一些数据?在这种情况下,我没有将任何数据传递给 php,所以我需要发出 get 或 post 请求吗?我的代码在警报中显示 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>
4

2 回答 2

3

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

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

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

setInterval(function(){
   $("#middle").load('./getDataFromMySQLdb.php');
}, 20000);
于 2013-02-14T00:40:56.413 回答
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>

于 2013-02-14T00:18:30.167 回答