2012-04-12 94 views
2

我正在开发其中XML是我的播放列表的视频播放器。这里是代码:用PHP中的新内容替换旧内容

$crxml=file_get_contents('http://spoti.com/latest.xml/?lang=en');  
    $rss=new SimpleXMLElement($crxml); 
    $playlistitem=1; 
foreach($rss->channel->item as $post) 

if($playlistitem<=8) 

echo '<ul>'; 
echo '<li class="xtitle">'.$post->title.'</li>'; 
echo '<li class="xdesc">'.$post->description.'</li>';  
$dc=$post->children('http://search.yahoo.com/mrss/'); 
echo '<li class="xthumb">'.$dc->thumbnail->attributes()->url.'</li>'; 
echo '<li class="xpreview">'.$dc->thumbnail->attributes()->url.'</li>'; 
echo '<li class="xsources_mp4">'.$dc->content->attributes()->url.'</li>'; 
$dc->content->attributes()->url=preg_replace('/.mp4/','.webm',$dc->content-attributes()->url); 
echo '<li class="xsources_webm">'.$dc->content->attributes()->url.'</li>'; 
echo '</ul>'; 
$playlistitem++; 

我要当语言用户点击的所有条目新条目

+1

什么不工作 – 2012-04-12 17:57:48

+3

除非你正在做一个传统的往返表单提交系统,你需要一些JavaScript来重写标签内容。 – 2012-04-12 17:59:32

+1

那么,什么是不工作 - 你真的想有什么结果。像交换语言和旧线消失? – 2012-04-12 18:00:11

回答

0

一个例子更换,以取代旧的内容与新的内容

if(isset($_POST["lang"])) 
    { 
     $lang = $_POST["lang"]; 
    } else { 
     $lang = "eng"; 
    } 
$crxml=file_get_contents('http://spoti.com/latest.xml/?lang='.$lang);  
$rss=new SimpleXMLElement($crxml); 
$playlistitem=1; 

foreach($rss->channel->item as $post) { 
    if($playlistitem<=8) { 
     echo '<ul id="playlist">'; 
     echo '<li class="xtitle">'.$post->title.'</li>'; 
     echo '<li class="xdesc">'.$post->description.'</li>';  
     $dc=$post->children('http://search.yahoo.com/mrss/'); 
     echo '<li class="xthumb">'.$dc->thumbnail->attributes()->url.'</li>'; 
     echo '<li class="xpreview">'.$dc->thumbnail->attributes()->url.'</li>'; 
     echo '<li class="xsources_mp4">'.$dc->content->attributes()->url.'</li>'; 
     $dc->content->attributes()->url=preg_replace('/.mp4/','.webm',$dc->content-attributes()->url); 
     echo '<li class="xsources_webm">'.$dc->content->attributes()->url.'</li>'; 
     echo '</ul>'; 
     $playlistitem++; 
    } 
} 

然后在jQuery的上页面中有一个语言选择框叫做#langSelect

$('#langSelect').change(function() { 
    var langSelected = $(this).val(); 

    $("#playlist").load("<?php echo $_SERVER['PHP_SELF']."?uid=".time(); ?> #playlist", {lang: langSelected}); 
}); 

要调试尝试使用这样的:

$('#lang').change(function() { 
    var langSelected = $(this).val(); 
    alert('Selected language: '+langSelected); 
    var url = '<?php echo $_SERVER['PHP_SELF']."?uid=".time(); ?>'; 
    alert('Ajax POST URL is: '+ url); 
    $("#playlist").load(url+" #playlist", {lang: langSelected}, function(response, status, xhr) { 
      alert(status); 
      alert(response); 
     } 
    }); 
}); 
+0

代码是正确的,但没有工作,因为没有显示在播放列表中,当我改变语言 – 2012-04-13 03:13:42

+0

嗯,你可以看到它加载页面(通过萤火虫/提琴手)?我认为这可能是缓存问题,所以它可能有助于将当前时间添加到请求url。用时间戳更新代码。 – 2012-04-13 05:43:52

+0

- 是啊,我看到网页没有加载也没有发生什么事,当我改变选择的选项 – 2012-04-13 09:34:54