所以我使用PHP来解析XML文件并将标题显示到不同的故事中。我有一个选择菜单,根据公司过滤故事。我有这个工作,但它刷新页面。有人可以通过Ajax为我提供一个如何做到这一点的例子,这样整个页面都不会刷新吗?任何帮助表示赞赏。
实例:http://recoverstudio.com/test/
当前代码:
<form name="feed-form" action="" method="GET">
<select name="feed" onchange="this.form.submit();">
<option value="">Filter</option>
<option value="https://www.pitchengine.com/Feed/AgencyRss/036d17f9-50ff-4cf1-9273-8865ba82d9ff">All</option>
<option value="http://pitchengine.com/Feed/BrandRss/cf6f4ba5-5e43-47c8-a7f2-1a9cb490c639">Brand 1</option>
</select>
</form>
<div id="press-releases">
<div id="pitch-engine">
<?php
$url = 'https://www.pitchengine.com/Feed/AgencyRss/036d17f9-50ff-4cf1-9273-8865ba82d9ff';
if(isset($_GET['feed'])){
$url = $_GET['feed'];
}
$xml = simplexml_load_file($url);
echo '<table>';
echo '<tr class="head"><td>Date</td><td>Title</td></tr>';
foreach($xml->channel->item as $item)
{
echo '<tr>';
echo '<td>' . $item->pubDate . '</td>';
echo '<td><a href="' . $item->link . '">' . $item->title . '</a></td>';
echo '</tr>';
}
echo '</table>';
?>
</div>
答案 0 :(得分:0)
基本上你想在jQuery .change
事件上进行AJAX调用。
这样的事情应该这样做(未经测试):
$('#myselect').change(function() {
var url = $(this).find('option:selected').val();
$.ajax({
url:url,
type:'GET',
success: function (res) {
// res should contain your XML string - parse it
}
error: function (xhr, status, errorThrown) {
console.log(status+' - '+errorThrown);
alert('Something went wrong processing the request.');
}
});
});
你可以自己理清XML解析 - 我只有使用javascript解析JSON的经验。