jQuery在选择菜单值更改时更新PHP var

时间:2011-12-10 20:54:18

标签: php jquery ajax

所以我使用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>

1 个答案:

答案 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的经验。