在我的页面上,我有一个用户列表。每个用户在外部站点上都有一个配置文件页面(不是同一个域名)。要保存我的客户在2个地方更新其个人资料详细信息,我使用的是PHP simple HTML Dom Parser。这将获取用户外部个人资料页面的内容并将其返回到我的网站上。
我想要做的是仅在点击用户名时将用户个人资料信息加载到我网站上的div中。
每个用户都是这样的:
<div class="actor_container" data-url="www.external-profile-url.com">
<img src="http://placehold.it/500x500" />
</div>
要获取外部页面的内容,我使用此代码:
$html = file_get_html('http://www.spotlight.com/5094-1276-6177');
echo $html->find('div.credits', 0);
显然,这是硬编码的。但是我需要将其设置为动态,以便在单击相关用户时加载每个用户的外部配置文件信息。
从以下答案更新:
我将此脚本添加到用户列表的顶部:
<script>
jQuery(function ($) {
$(".actor_container").load(function () {
return "http://79.170.44.105/samskirrow.com/nial/wp-content/plugins/nial-customizations/front-end/my.php?url=" + $(this).data("url");
});
});
</script>
然后在 my.php
<?php
$html = file_get_html($_GET["url"]);
echo $html->find('div.credits', 0);
目前,当我点击用户时,没有任何反应
更新
好的,我已经开始使用AJAX访问my.php了。以下是我到目前为止的情况:
<script>
jQuery(document).ready(function ($) {
$('.nial_actor').on("click", function (e) {
e.preventDefault();
$.ajax({
url: "http://79.170.44.105/samskirrow.com/nial/wp-content/plugins/nial-customizations/front-end/my.php?url=" + $(this).data("url"),
type: 'GET',
success: function(res) {
var data = $.parseHTML(res);
// append all data
$('#all_data').append(data);
}
});
}); //on
}); // ready
</script>
然而,这会返回以下错误:
GET http://79.170.44.105/samskirrow.com/nial/wp-content/plugins/nial-customizations/front-end/my.php?url=undefined 500 (Internal Server Error)
因此,由于某种原因,data-url中的url没有添加到我的ajax url的末尾。我错过了一些明显的东西吗?
答案 0 :(得分:0)
这样的东西有效吗?
$(function () {
$(".actor_container").load(function () {
return "my.php?url=" + $(this).data("url");
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="actor_container" data-url="www.external-profile-url.com">
<img src="...actor profile img..." />
</div>
&#13;
在PHP文件中,您可以添加url
作为GET
参数:
$html = file_get_html($_GET["url"]);
请注意,此方法存在许多漏洞。保持这只是一个指导。