在PHP中用新内容替换旧内容
我正在开发视频播放器,其中XML是我的播放列表。以下是代码:在PHP中用新内容替换旧内容,php,jquery,Php,Jquery,我正在开发视频播放器,其中XML是我的播放列表。以下是代码: $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>'; ech
$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++;
$crxml=file\u get\u contents('http://spoti.com/latest.xml/?lang=en');
$rss=新的simplexmlement($crxml);
$playlitem=1;
foreach($rss->channel->itemas$post)
如果($playitemtitle.”;
回显“”。$post->说明。“ ”;
$dc=$post->children($dc)http://search.yahoo.com/mrss/');
回显“”.$dc->缩略图->属性()->url. ”;
echo'。$dc->thumbnail->attributes()->url. ;
echo“”。$dc->content->attributes()->url. ;
$dc->content->attributes()->url=preg_replace('/.mp4/'、'.webm',$dc->content-attributes()->url);
echo“”。$dc->content->attributes()->url. ”;
回声“”;
$item++;
当用户单击语言时,我想用新内容替换旧内容所有条目都替换为新条目,例如
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++;
}
}
if(isset($\u POST[“lang”]))
{
$lang=$_POST[“lang”];
}否则{
$lang=“eng”;
}
$crxml=文件\u获取\u内容('http://spoti.com/latest.xml/?lang=“$朗);
$rss=新的simplexmlement($crxml);
$playlitem=1;
foreach($rss->channel->itemas$post){
如果($playitemtitle.”;
回显“”。$post->说明。“ ”;
$dc=$post->children($dc)http://search.yahoo.com/mrss/');
回显“”.$dc->缩略图->属性()->url. ”;
echo'。$dc->thumbnail->attributes()->url. ;
echo“”。$dc->content->attributes()->url. ;
$dc->content->attributes()->url=preg_replace('/.mp4/'、'.webm',$dc->content-attributes()->url);
echo“”。$dc->content->attributes()->url. ”;
回声“”;
$item++;
}
}
然后在页面的jQuery中有一个选择框,其中包含名为#langSelect的语言
$('#langSelect').change( function() {
var langSelected = $(this).val();
$("#playlist").load("<?php echo $_SERVER['PHP_SELF']."?uid=".time(); ?> #playlist", {lang: langSelected});
});
$('#langSelect')。更改(函数(){
var langSelected=$(this.val();
$(“#playlist”).load(“#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);
}
});
});
$('#lang')。更改(函数(){
var langSelected=$(this.val();
警报(“所选语言:”+所选语言);
var url='';
警报('Ajax POST URL为:'+URL);
$(“#播放列表”).load(url+“#播放列表”,{lang:langSelected},函数(响应,状态,xhr){
警报(状态);
警报(响应);
}
});
});
一个例子
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++;
}
}
if(isset($\u POST[“lang”]))
{
$lang=$_POST[“lang”];
}否则{
$lang=“eng”;
}
$crxml=文件\u获取\u内容('http://spoti.com/latest.xml/?lang=“$朗);
$rss=新的simplexmlement($crxml);
$playlitem=1;
foreach($rss->channel->itemas$post){
如果($playitemtitle.”;
回显“”。$post->说明。“ ”;
$dc=$post->children($dc)http://search.yahoo.com/mrss/');
回显“”.$dc->缩略图->属性()->url. ”;
echo'。$dc->thumbnail->attributes()->url. ;
echo“”。$dc->content->attributes()->url. ;
$dc->content->attributes()->url=preg_replace('/.mp4/'、'.webm',$dc->content-attributes()->url);
echo“”。$dc->content->attributes()->url. ”;
回声“”;
$item++;
}
}
然后在页面的jQuery中有一个选择框,其中包含名为#langSelect的语言
$('#langSelect').change( function() {
var langSelected = $(this).val();
$("#playlist").load("<?php echo $_SERVER['PHP_SELF']."?uid=".time(); ?> #playlist", {lang: langSelected});
});
$('#langSelect')。更改(函数(){
var langSelected=$(this.val();
$(“#playlist”).load(“#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);
}
});
});
$('#lang')。更改(函数(){
var langSelected=$(this.val();
警报(“所选语言:”+所选语言);
var url='';
警报('Ajax POST URL为:'+URL);
$(“#播放列表”).load(url+“#播放列表”,{lang:langSelected},函数(响应,状态,xhr){
警报(状态);
警报(响应);
}
});
});
除非您使用的是传统的往返表单提交系统,否则您需要一些Javascript来重写标记内容。好吧,什么不起作用?您真正想要的结果是什么。就像交换语言和旧行以淡出一样?@MaxAllan Yes当用户从选择选项中选择语言时,语言会发生变化事实上,如果你在做一个传统的往返表单提交系统,你需要一些Javascript来重写标记内容。那么,什么不起作用?你真正想要的结果是什么。比如交换语言和旧的行以消失?@MaxAllan是,当用户从选择选项中选择语言,然后更改语言s automaticallycode是正确的,但在我更改语言时,播放列表中没有显示任何内容。HMMM您能看到它加载页面吗(通过firebug/fiddler)?我想这可能是缓存问题,因此它可能有助于将当前时间添加到请求url。用时间戳更新了代码。-是的,我看到页面没有加载。当我更改选项的选择时,也没有发生任何事情。您在选择框上有一个带有#langSelect
的ID,对吗?还要检查ajax调用中的PHP是否正在输出正确..可能粘贴您得到的输出,然后我可能能够发现错误:)-我添加了上面的代码,您可以检查并找到错误。这将从您那里得到很大帮助。非常感谢您帮助我,代码是正确的,但在我更改语言时不会在播放列表中显示任何内容。HMMM您能看到它加载页面吗(通过firebug/fiddler)?我想这可能是缓存问题,因此可能有助于将当前时间添加到请求url。更新了带有时间戳的代码。-是的,我看到页面没有加载。当我更改选项选择时也没有发生任何事。您在选择框上有一个ID,带有#langSelect