在 jQuery 中附加外部 PHP 文件

Posted

技术标签:

【中文标题】在 jQuery 中附加外部 PHP 文件【英文标题】:Appending external PHP file in jQuery 【发布时间】:2019-03-14 06:14:18 【问题描述】:

我指的是一个已回答的问题here。

尝试将外部 php 文件附加到 jQuery 并尝试load

$(".chatbox").load("./one.php");

这给了我输出;

您的成功讯息!

但令人担忧的是,这会删除正文中的所有 html,并且不会真正'附加'成功消息。

我尝试了以下方法。

$(".chatbox").append("./one.php");

它只是打印这个!

./one.php

我错过了什么吗?

【问题讨论】:

load() 替换所选元素的全部内容。听起来您只需将 .chatbox 选择器更改为较低级别的元素。如果您想追加内容,则需要使用 $.ajax() 手动检索值并使用 append() 手动检索。 append() 怎么知道./one.php 是一个文件? 您需要$.get() 并在成功回调中使用$.append()。但是请仔细阅读所有这些功能的 jquery 文档(loadgetappend)。他们非常清楚,很可能会解决您的问题,或者至少可以帮助您提出更具体的问题。 @giorgio 有道理! 阅读this、this和this,这将是有意义的 【参考方案1】:

.load() 从服务器加载数据并将返回的 HTML 放入匹配的元素中。但是你需要使用$.ajax()$.get()来获取数据并返回到回调函数中。

$.get("./one.php", function(data) 
   $(".chatbox").append(data);
);

【讨论】:

【参考方案2】:

如果您尝试加载的页面由于某种原因而失败,您还需要处理错误块以通知您该问题。这是一种更全面的方法。这里我调用了一个 wiki 页面,但你会知道,所有的 php 页面实际上都被 PHP 引擎解释为有效的 html :)

$.ajaxPrefilter( function (options) 
  if (options.crossDomain && jQuery.support.cors) 
    var http = (window.location.protocol === 'http:' ? 'http:' : 'https:');
    options.url = http + '//cors-anywhere.herokuapp.com/' + options.url;
  
);


$.ajax(
  type: "GET",
  url: "https://en.wikipedia.org/wiki/PHP",
  data:  ,
  success: function(data)
    $('#demo').html(data);
  ,
  error: function(XMLHttpRequest, textStatus, errorThrown) 
    $('#demo').html("Status: " + textStatus + "<br/>Error: " + errorThrown);
  
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div id="demo"></div>

【讨论】:

以上是关于在 jQuery 中附加外部 PHP 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PHP 将文本附加到特定标签内的外部 html 文件?

如何从外部 php jquery 加载内容

将 PHP 数组传递给外部 jQuery $.ajax

将 PHP 变量传递给外部 JavaScript(或 jQuery)文件的最有效方法

将 PHP 变量传递给外部 JavaScript(或 jQuery)文件的最有效方法

将外部文件加载到jquery mobile中的页面ID中