我不知道为什么我在这方面遇到了困难,但现在是时候我出现了问题并问了这个问题。
使用jquery ajax调用php文件的最佳方法是什么,让它通过$ _GET处理一些输入,返回那些结果并再次使用ajax替换div的内容?
到目前为止,我可以调用php文件,并且在jquery ajax调用成功之后我得到了文本的警告。
$.ajax({
url: "xxx/xxx.php",
type: "GET",
data: data,
cache: false,
success: function (html) {
alert("HTLM = " + html);
$('#product-list').html(html);
}
});
我设置了php函数来回显结果,警报从php文件中吐出html。但是我有副作用。我得到了php生成的代码在页面顶部回显。所以php正在做它的工作(通过回应内容)。接下来,jquery通过用php文件中的值替换div的内容来完成它的工作。
如何阻止php文件回显页面顶部的内容?
示例代码从php回显并在jquery ajax成功提醒
HTML =
<div class="quarter">
<div class="thumb">
<a href="productinfo.php?prod-code=Y-32Z&cat=bw&sub=">
<img src="products/thumbs/no_thumb.gif" alt="No Image" border="0" />
</a>
</div>
<div class="labels"><span class="new-label">New</span></div>
<p><span class="prod-name">32OZ YARD</span></p>
<p><span class="prod-code">Y-32Z</span></p>
</div>
感谢!!!
-Kris
答案 0 :(得分:4)
您是否在页面顶部包含用于ajax调用的php文件?如果是这样你就不需要了。这会导致数据在顶部转储。
提出你的问题:)
编辑回答问题
<div id="product-list">
<?php include 'products.php' ?>
</div>
你的ajax函数现在会在运行时覆盖php内容并输出到#product-list
答案 1 :(得分:0)
如果您的意思是要避免显示标题和正文标记,只需要显示内容,则需要在AJAX
侧检测请求的时间PHP
。
一些伪代码是:
IF (!IS_AJAX)
HTML
HEADER
BODY
ENDIF
CONTENTS
IF (!IS_AJAX)
/BODY
/HTML
ENDIF
在stackoverflow
处搜索HTTP_X_REQUESTED_WITH答案 2 :(得分:0)
您的问题并不完全清楚,但听起来您只想使用响应数据的PART。如果是这种情况,那么有两种方法可以解决这个问题:
首先,您可以在PHP端检查是否通过AJAX请求它。这是我使用的解决方案,因为它可以防止无用的数据传输到客户端:
define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'); ... if(!IS_AJAX) { // anything here will NOT be sent in response to ajax requests }
或者,您可以使用ID标记要使用的响应数据部分,然后在返回的数据中搜索该ID:
<h1>Don't care about this</h1> <div id="use_this">This is the useful data.</div>
然后为你的ajax响应回调:
success = function(data) {
data = $(data).find('#use_this');
// do whatever
}