是否可以使用jQuery打印php脚本的结果,而无需将其加载到div中?

时间:2011-02-27 20:29:06

标签: php javascript jquery ajax

过去我使用.load()将数据加载到页面上的特定DIV中。

我想运行一个PHP脚本,并在查询字符串中传递一些参数,然后在页面中打印结果。

它会像这样,我有脚本的结果我想运行脚本,并传递参数,然后打印结果。

该脚本在站点的其他地方使用,它接收查询字符串中的参数,并打印结果。

如果有办法在PHP中执行此操作,我不必使用Javascript吗?但是我不知道用PHP做这件事的方法,并且能够将它作为查询字符串传递。

while($row = mysql_fetch_array($rooms))
{
//Run the price script and print result
print "<div id=\"price-result\">";
print *RESULT OF SCRIPT*;
print "</div>"; 
}

3 个答案:

答案 0 :(得分:1)

我将假设所需的是在页面中间执行此操作的方法:

  <div>
    Blah blah content content
    <script src='magic.js'></script>
    Blah blah more content

使脚本运行并且页面上的结果为

  <div>
    Blah blah content content
    <div class='wow-I-was-just-loaded-dynamically'>
      Dynamic stuff blah blah
    </div>
    Blah blah more content

如果是这样,那么我认为唯一的方法是让脚本执行以下操作:

    document.write("<div id='magic'></div>");

然后启动相应的异步调用以加载内容:

    setTimeout(function() {
      $('#magic').load(url, function() { ... });
    }, 5);

(我不是100%确定需要在超时时间内完成;这取决于是否通过document.write()调用立即正确更新了DOM。)

答案 1 :(得分:0)

不要依赖jquery来做所有事情。您要找的是document.write()。使用.ajax获取内容,然后document.write()输出内容。它将在包含函数调用的脚本标记之后立即输出。

答案 2 :(得分:0)

你需要在等式中的某个占位符。您可以使用选择器和append方法向DOM元素添加内容。它可以是ID,类或标签。

$(document).ready(function() {
    $.ajax( {
        ...
        success: function(data) {  $("#some_id").append(data); }
           // OR to append to the body $("body").append(data)
    });
});

<table>
    ...
    <tr>
        <td id="some_id">Some stuff</td>
    </tr>
</table>

全部取决于您希望它出现的位置。您可以将.html和.append与您喜欢的任何选择器结合使用。