使用jqueryajax获取php结果

使用jqueryajax获取php结果,php,jquery,ajax,Php,Jquery,Ajax,我不知道为什么我在这件事上有困难,但现在是时候我站出来问这个问题了 使用jquery ajax调用php文件的最佳方法是什么,让它通过$\u GET处理一些输入,返回这些结果,然后再次使用ajax替换div的内容 到目前为止,我可以调用php文件,在jQueryAjax调用成功后,我得到了一个文本警报 $.ajax({ url: "xxx/xxx.php", type: "GET", data: data, cache:

我不知道为什么我在这件事上有困难,但现在是时候我站出来问这个问题了

使用jquery ajax调用php文件的最佳方法是什么,让它通过$\u GET处理一些输入,返回这些结果,然后再次使用ajax替换div的内容

到目前为止,我可以调用php文件,在jQueryAjax调用成功后,我得到了一个文本警报

$.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文件回显页面顶部的内容

在jQueryAjax成功时,从php返回并发出警报的示例代码

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>

新的
32盎司码

Y-32Z

谢谢


-Kris

是否在页面顶部包含用于ajax调用的php文件?如果是这样的话,你不需要这样做。这将导致数据从顶部转储

问你的问题:)

编辑以回答问题

<div id="product-list">
<?php include 'products.php' ?>
</div>


ajax函数现在将在运行并输出到#产品列表时覆盖php内容

是否在页面顶部包含用于ajax调用的php文件?如果是这样的话,你不需要这样做。这将导致数据从顶部转储

问你的问题:)

编辑以回答问题

<div id="product-list">
<?php include 'products.php' ?>
</div>


您的ajax函数现在将在运行时覆盖php内容并输出到#product list

如果您的意思是要避免显示标题和正文标记,只显示内容,则需要在
php
端检测请求何时为
ajax

一些伪代码是:

IF (!IS_AJAX)
    HTML
    HEADER
    BODY
ENDIF

CONTENTS

IF (!IS_AJAX)
    /BODY
    /HTML
ENDIF

在stackoverflow此处搜索如果您的意思是要避免显示标题和正文标记,而只显示内容,则需要在
PHP
侧检测请求何时为
AJAX

一些伪代码是:

IF (!IS_AJAX)
    HTML
    HEADER
    BODY
ENDIF

CONTENTS

IF (!IS_AJAX)
    /BODY
    /HTML
ENDIF

在stackoverflow这里搜索您的问题并不十分清楚,但听起来您只想使用部分响应数据。如果是这样,那么有两种方法:

首先,您可以在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 }
您的问题并不十分清楚,但听起来您只想使用部分响应数据。如果是这样,那么有两种方法:

首先,您可以在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 }

您能提供一个返回的标记的示例吗?我添加了一些标记,在jquery ajax成功时会发出警报。无论您在php文件中呼出什么,jquery都会输出这些标记。如果你不想让它在Jquery中返回,你就不能在php页面上回显它。@Kris.Mitchell-这是确切的标记,还是仅仅是它的一部分?如果仅此而已,呈现的是哪些不需要的内容?@Kris.Mitchell您是否在页面顶部包含用于ajax调用的php文件?如果是这样的话,你不需要这样做。这会导致数据在顶部转储。您可以提供返回的标记的示例吗?我添加了一些标记,在jquery ajax成功时会发出警报。无论您在php文件中呼出什么,jquery都会输出。如果你不想让它在Jquery中返回,你就不能在php页面上回显它。@Kris.Mitchell-这是确切的标记,还是仅仅是它的一部分?如果仅此而已,呈现的是哪些不需要的内容?@Kris.Mitchell您是否在页面顶部包含用于ajax调用的php文件?如果是这样的话,你不需要这样做。如果我使用jquery ajax调用php文件并获取内容,那么一旦jquery完成,如果我查看源代码,内容就不在源代码视图中,那么这将导致数据在顶部转储。它在页面上,但不是在你查看源代码时。当我在它上面运行蜘蛛模拟器时,它不会显示内容。这就是jquery ajax的工作原理还是有其他方法可以做到这一点?一旦页面处于活动状态,没有jquery/javascript修改页面,爬行器没有启用javascript,因此无法获取内容。为什么需要jquery来包含内容,而不仅仅是使用php?如果任何人在没有启用javascript的情况下查看您的站点(如果您没有包含php文件),他们将无法查看您的产品。我是否包含该文件以便运行初始内容加载,但在需要回显jquery+ajax时不包含它?我不想做一个单独的文件。我已经修改了我的答案,不包括在顶部的php文件,但你想要输出的内容,即div产品列表。我想我有设计问题。爆笑。卢克。谢谢。如果我使用jQueryAjax调用php文件并获取内容,一旦jquery完成,如果我查看源代码,那么内容就不在源代码视图中。它在页面上,但不是在你查看源代码时。当我在它上面运行蜘蛛模拟器时,它不会显示内容。这就是jquery ajax的工作原理还是有其他方法可以做到这一点?一旦页面处于活动状态,没有jquery/javascript修改页面,爬行器没有启用javascript,因此无法获取内容。为什么需要jquery来包含内容,而不仅仅是使用php?如果任何人在没有启用javascript的情况下查看您的站点(如果您没有包含php文件),他们将无法查看您的产品。我是否包含该文件以便运行初始内容加载,但在需要回显jquery+ajax时不包含它?我不想做一个单独的文件。我已经修改了我的答案,不是吗