Formularer med forskelligt navn i PHP
Hej med jer.Jeg har fundet følgende script som jeg gerne vil bruge på min side www.nyhedsoverblikket.dk :
http://www.howtocreate.co.uk/jslibs/script-rssatom
Her kan alle filerne til scriptet hentes.
Det skal siges, at jeg ikke er den vilde kode kahl, men det jeg har gjort er, at sætte følgende kode fra rss.html ind i to forskellige celler.
Jeg har endvidere forsøgt at rename dropdown navnet til feedURL0 og rette det samtlige steder det står skrevet i de andre filer.
Jeg har lavet en test version her (hvor højresiden ikke virker):
http://www.nyhedsoverblikket.dk/rsstemp/normal/test1.html
Mit spørgsmål er:
Hvordan får jeg to eller flere dropdownmenuer på samme side til at virke?
Her er koden fra rss.html:
<html>
<head>
<title>
RSS/Atom feed parser
</title>
<script src="importxml.js" type="text/javascript"></script>
<script type="text/javascript"><!--
/********************************************************************************************************
Script to parse RSS/Atom XML data files
Written by Mark Wilton-Jones
version 3.1.0 updated 12/10/2005 to add OPML support
Please see http://www.howtocreate.co.uk/jslibs/ for details and a demo of this script
Please see http://www.howtocreate.co.uk/tutorials/jsexamples/rss.html for a demo and description
Please see http://www.howtocreate.co.uk/jslibs/termsOfUse.html for terms of use
********************************************************************************************************/
//display image enclosures: 0 = none, 1 = inside link to item, 2 = after item description
var displayEnclosures = 2;
//display atom links: 0 = before item description, 1 = after item description
var displayAtomLinks = 1;
function cloneTree(oFrom,oTo) { try {
for( var i = 0, n; i < oFrom.childNodes.length; i++ ) {
n = oFrom.childNodes[i];
if( n.tagName ) {
var oTag = document.createElement(n.tagName);
oTo.appendChild(oTag);
for( var j = 0; j < n.attributes.length; j++ ) {
try { oTag.setAttribute(n.attributes[j].nodeName,n.attributes[j].nodeValue); } catch(e) {}
}
cloneTree(n,oTag);
} else if( n.nodeType == 3 ) {
oTo.appendChild(document.createTextNode(n.nodeValue));
}
}
} catch(e) { alert(oFrom.tagName+' '+n.nodeValue); throw(e); } }
function prepHTMLCode(oFrom) {
return oFrom.replace(/&/g,'&').replace(/"/g,'"').replace(/</g,'<').replace(/>/g,'>');
}
function getUnNestedTextNodes(oFrom) {
var oStr = '';
for( var i = 0; i < oFrom.childNodes.length; i++ ) {
if( ( oFrom.childNodes[i].nodeType == 3 ) || ( oFrom.childNodes[i].nodeType == 4 ) ) { oStr += oFrom.childNodes[i].nodeValue; }
}
return oStr;
}
function parseRSS(oDocObj) {
//check if the browser interpreted the XML correctly
if( oDocObj.documentElement && ( !oDocObj.documentElement.tagName || ( oDocObj.documentElement.tagName && oDocObj.documentElement.tagName.toUpperCase() == 'HTML' ) ) ) {
setTimeout('alert(\'For no apparent reason, your browser has turned the RSS feed into HTML based garbage.\\nScript aborted.\');',50); return; }
var chanEl = oDocObj.getElementsByTagName('channel')[0];
if( !chanEl ) { chanEl = oDocObj.getElementsByTagName('atomSpoof')[0]; }
if( !chanEl ) {
if( oDocObj.getElementsByTagName('opml')[0] || oDocObj.getElementsByTagName('outlineDocument')[0] ) {
getListOfFeeds(oDocObj);
} else {
alert('Format was not recognised as a valid RSS feed');
}
return;
}
var RSSversion = oDocObj.getElementsByTagName('rssSpoof')[0] ? oDocObj.getElementsByTagName('rssSpoof')[0].getAttribute('version') : ( oDocObj.getElementsByTagName('atomSpoof')[0] ? ( 'atomfeed' + oDocObj.getElementsByTagName('atomSpoof')[0].getAttribute('version') ) : '' );
//get the information about the feed
for( var x = 0, y, feedInfo = [], tagName2, tagName3; x < chanEl.childNodes.length; x++ ) {
y = chanEl.childNodes[x];
if( y.tagName ) {
tagName2 = y.tagName.toLowerCase();
if( tagName2 == 'fiximage' ) {
feedInfo['image'] = [];
for( var i = 0, j; i < y.childNodes.length; i++ ) {
j = y.childNodes[i];
if( j.tagName ) {
tagName3 = j.tagName.toLowerCase();
feedInfo['image'][tagName3] = getUnNestedTextNodes(j);
if( RSSversion.match(/0?\.91/) ) { feedInfo['image'][tagName3] = prepHTMLCode(feedInfo['image'][tagName3]); }
}
}
} else if( tagName2 != 'item' && tagName2 != 'entry' ) {
if( tagName2 != 'fixlink' || !y.getAttribute('rel') ) {
feedInfo[tagName2] = getUnNestedTextNodes(y);
if( RSSversion.match(/0?\.91/) ) { feedInfo[tagName2] = prepHTMLCode(feedInfo[tagName2]); }
}
}
}
}
if( !feedInfo['lastbuilddate'] ) { feedInfo['lastbuilddate'] = feedInfo['pubdate']; }
//parse each news item
var y = oDocObj.getElementsByTagName('item');
if( !y.length ) { y = oDocObj.getElementsByTagName('entry'); }
for( var x = 0, newsItems = []; x < y.length; x++ ) {
newsItems[x] = [];
newsItems[x]['links'] = {alternate:[],related:[],via:[]};
newsItems[x]['content'] = '';
for( var i = 0, j, theRel; i < y[x].childNodes.length; i++ ) {
j = y[x].childNodes[i];
if( j.tagName ) {
tagName2 = j.tagName.toLowerCase();
theRel = j.getAttribute('rel');
if( theRel ) { theRel = theRel.toLowerCase(); }
theType = j.getAttribute('type');
if( theType ) { theType = theType.toLowerCase(); }
if( tagName2 == 'enclosure' || ( ( tagName2 == 'fixlink' ) && ( theRel == 'enclosure' ) ) ) {
if( !newsItems[x]['enclosure'] ) { newsItems[x]['enclosure'] = []; }
newsItems[x]['enclosure'][newsItems[x]['enclosure'].length] = [];
for( var k = 0, l, atn; l = j.attributes[k]; k++ ) {
atn = l.nodeName.toLowerCase();
if( atn == 'href' ) { atn = 'url'; }
newsItems[x]['enclosure'][newsItems[x]['enclosure'].length-1][atn] = l.nodeValue;
}
} else if( tagName2 == 'fixlink' ) {
if( !theRel || ( theRel == 'alternate' ) ) {
newsItems[x]['links']['alternate'][0] = prepHTMLCode( j.firstChild ? getUnNestedTextNodes(j) : j.getAttribute('href') );
} else if( ( theRel == 'via' ) || ( theRel == 'related' ) ) {
newsItems[x]['links'][theRel][newsItems[x]['links'][theRel].length] = [prepHTMLCode(j.getAttribute('href')),prepHTMLCode(j.getAttribute('title'))];
}
} else if( tagName2 == 'summary' ) {
if( !theType || ( theType == 'text' ) || theType.match(/^text\/plain$/) ) {
newsItems[x]['description'] = prepHTMLCode(getUnNestedTextNodes(j));
} else if( ( theType == 'html' ) || ( theType == 'text\/html' ) ) {
newsItems[x]['description'] = getUnNestedTextNodes(j);
} else if( ( theType == 'xhtml' ) || theType.match(/^application\/.*\+xml$/) ) {
var foo = document.createElement('div');
cloneTree(j,foo);
newsItems[x]['description'] = foo.innerHTML;
}
} else if( tagName2 == 'content' ) {
if( !theType || ( theType == 'text' ) || theType.match(/^text\/plain$/) ) {
newsItems[x]['content'] += (newsItems[x]['content']?'<br>':'')+prepHTMLCode(getUnNestedTextNodes(j));
} else if( ( theType == 'html' ) || ( theType == 'text\/html' ) ) {
newsItems[x]['content'] += (newsItems[x]['content']?'<br>':'')+getUnNestedTextNodes(j);
} else if( ( theType == 'xhtml' ) || theType.match(/^application\/.*\+xml$/) ) {
var foo = document.createElement('div');
cloneTree(j,foo);
newsItems[x]['content'] += (newsItems[x]['content']?'<br>':'')+foo.innerHTML;
}
} else {
newsItems[x][tagName2] = getUnNestedTextNodes(j);
if( RSSversion.match(/0?\.91/) ) { newsItems[x][tagName2] = prepHTMLCode(newsItems[x][tagName2]); }
}
}
}
}
//now that the entire feed has been converted into JavaScript arrays, it is time to write it out
document.title = feedInfo['title'] ? ( 'News feed: ' + feedInfo['title'] ) : 'Untitled newsfeed';
//headers
var oFeedStr = '<div class="rssarea"><div class="headers">'+
((feedInfo['image']&&feedInfo['image']['url'])?(
(feedInfo['image']['fixlink']?('<div class="withImage"><a href="'+feedInfo['image']['fixlink']+'">'):'')+
'<img src="'+prepHTMLCode(feedInfo['image']['url'])+'" alt="'+(feedInfo['image']['title']?feedInfo['image']['title']:'')+'">'+
(feedInfo['image']['fixlink']?'<\/a></div>':'')
):'')+
'<h2>'+(feedInfo['fixlink']?('<a href="'+prepHTMLCode(feedInfo['fixlink'])+'">'+prepHTMLCode(document.title)+'<\/a>'):prepHTMLCode(document.title))+'<\/h2>'+
(feedInfo['subtitle']?('<p><b>Subtitle:<\/b> '+prepHTMLCode(feedInfo['subtitle'])+'<\/p>'):'')+
(feedInfo['description']?('<p><b>Description:<\/b> '+feedInfo['description']+'<\/p>'):'')+
(feedInfo['lastbuilddate']?('<p><b>Published date:<\/b> '+prepHTMLCode(feedInfo['lastbuilddate'])+'<\/p>'):'')+
(feedInfo['updated']?('<p><b>Last updated:<\/b> '+prepHTMLCode(feedInfo['updated'])+'<\/p>'):'')+
'<\/div><div class="newsitems">\n';
//items
for( var x = 0, y; y = newsItems[x]; x++ ) {
var oEncl = '';
if( displayEnclosures && y['enclosure'] ) { for( var p = 0, q; q = y['enclosure'][p]; p++ ) {
if( q['url'] && q['type'] && q['type'].match(/^image\/(gif|png|jpeg)$/i) ) {
oEncl += '<img src="'+prepHTMLCode(q['url'])+'" alt="Image">';
}
} }
//special atom links
var oAtomLinks = '', oLtypes = [['related','Related links'],['via','Cited sources']];
for( var oTyp = 0, oETyp; oETyp = oLtypes[oTyp]; oTyp++ ) {
if( y['links'][oETyp[0]].length ) {
oAtomLinks += '<h4 class="'+oETyp[0]+'">'+oETyp[1]+':<\/h4><ul class="'+oETyp[0]+'">';
for( var oLn = 0, oEach; oEach = y['links'][oETyp[0]][oLn]; oLn++ ) {
oAtomLinks += '<li><a href="'+oEach[0]+'">'+oEach[1]?oEach[1]:oEach[0]+'<\/a><\/li>';
}
oAtomLinks += '</ul>';
}
}
oFeedStr += '<div class="feeditem"><h3><a href="'+y['links']['alternate']+'">';
if( displayEnclosures == 1 ) { oFeedStr += oEncl; }
oFeedStr += (y['title']?prepHTMLCode(y['title']):'Untitiled')+'<\/a><\/h3>';
if( !displayAtomLinks ) { oFeedStr += oAtomLinks; }
oFeedStr += y['description']?('<div class="descr">'+y['description']+'<\/div>'):'';
oFeedStr += y['content']?('<div class="conte">'+y['content']+'<\/div>'):'';
if( displayAtomLinks ) { oFeedStr += oAtomLinks; }
if( displayEnclosures == 2 ) { oFeedStr += oEncl; }
oFeedStr += '<\/div>\n';
}
//footer
oFeedStr += '</div>'+
(feedInfo['copyright']?('<div class="footers"><p><b>Copyright:<\/b> '+prepHTMLCode(feedInfo['copyright'])+'<\/p><\/div>'):'')+
'</div>\n';
//output
document.getElementById('feedcontainer').innerHTML = oFeedStr;
}
//using a link from an OPML file - change this if you change the layout
function fromOPML(oURL,oFix91) {
window.storedFeedTitle = document.title;
window.backToFoo = document.getElementById('feedcontainer').innerHTML;
window.backToFooURL = document.forms['feedForm'].feedURL.value;
if( !window.backBut ) {
window.backBut = document.createElement('a');
window.backBut.style.marginRight = '7px';
window.backBut.appendChild(document.createTextNode('<< List'));
window.backBut.setAttribute('href','java script:doBackBut();');
window.backBut.setAttribute('target','_self');
window.backBut.setAttribute('title','Back to last imported feed list');
document.getElementsByTagName('h1')[0].appendChild(window.backBut);
}
document.forms['feedForm'].fix091.checked = oFix91;
document.forms['feedForm'].feedURL.value = oURL;
document.forms['feedForm'].onsubmit();
return false;
}
//going back after using a link from an OPML file - change this if you change the layout
function doBackBut() {
document.getElementById('feedcontainer').innerHTML = backToFoo;
document.forms['feedForm'].feedURL.value = window.backToFooURL;
window.backBut.parentNode.removeChild(window.backBut);
window.backBut = null;
document.title = window.storedFeedTitle;
}
//parse OPML
function getListOfFeeds(oDoc) {
//get the list title
var allText = oDoc.getElementsByTagName('title')[0];
document.title = ( allText && allText.firstChild ) ? ( 'Feed collection: ' + getUnNestedTextNodes( allText ) ) : 'Untitled feed collection';
allText = '<h2>' + prepHTMLCode(document.title) + '<\/h2>';
//get the feed list - and try to cope with different formats - no promises
var oOutline = oDoc.getElementsByTagName('outline'), oAllLinks = '';
for( var i = 0, j; i < oOutline.length; i++ ) {
j = oOutline[i];
var xmlUrl = j.getAttribute('xmlUrl');
if( !xmlUrl ) { continue; }
var oTitle = j.getAttribute('title');
if( !oTitle ) { oTitle = j.getAttribute('text'); }
if( !oTitle ) { oTitle = xmlUrl; }
oTitle = prepHTMLCode(oTitle);
xmlUrl = prepHTMLCode(xmlUrl);
oAllLinks += '<li><a onclick="return fromOPML(this.href,'+((j.getAttribute('fix091')=='yes')?true:false)+');" href="'+prepHTMLCode(xmlUrl)+'" target="_self">'+prepHTMLCode(oTitle)+'<\/a><\/li>';
}
allText += oAllLinks ? ('<ul>'+oAllLinks+'<\/ul>') : '<p>No feeds found<\/p>';
//output
document.getElementById('feedcontainer').innerHTML = allText;
}
//--></script>
<style type="text/css"><!--
html, body { margin: 0; padding: 0; background-color: #d6dff7; color: #000; }
h1, h2 { background-color: #113; color: #fff; padding: 2px; margin: 0px; }
form { margin: 2px 2px 5px 2px; }
form p { margin: 0; }
a { color: #009; }
h1 a { float: right; color: #fff; font-size: 0.7em; text-decoration: underline; margin-right: 10px; }
div.rssarea { border: 2px solid #bbb; margin: 5px; padding: 5px; background-color: #fff; }
div.headers, div.footers {
margin: 10px; border-color: #000; border-style: solid; border-width: 0 5px 5px 1px;
background-color: #d6dff7;
}
div.headers h2 { margin-left: -1px; font-size: 1.2em; }
div.headers h2 a { color: #fff; text-decoration: none; display: block; margin: 0; padding: 0px; }
div.headers p, div.footers p { margin: 1px; color: #25c; font-size: 0.8em; }
div.headers div.withImage { float: right; margin-left: 10px; }
div.headers a img { border: 1px solid #113; }
div.feeditem { border: 1px solid #999; border-top-size: 0; margin: 5px 10px 5px 10px; }
div.feeditem div { margin: 10px; }
div.feeditem h3 { font-size: 1.1em; font-weight: bold; margin: 0; }
div.feeditem h3 a { background-color: #ddd; color: #444; text-decoration: none; display: block; margin: 0; padding: 2px; }
div.feeditem h3 a:hover { background-color: #ccc; }
div.feeditem h3 a:visited { color: #422; }
div.feeditem h3 a::before { content: "\00BB"; }
div.feeditem h3 a:visited::before { content: "\00AB"; }
div.footers { border-top-width: 1px; }
div.feeditem h4.via, div.feeditem h4.related { margin-left: 10px; }
div.feeditem ul.via, div.feeditem ul.related { margin-bottom: 10px; }
--></style>
<base target="_blank">
</head>
<body onload="window.defVal=document.getElementById('feedcontainer').innerHTML;">
<h1>RSS/Atom feed parser <a href="java script:if(window.myInterval){window.clearInterval(window.myInterval);}document.forms[0].reset();void(document.getElementById('feedcontainer').innerHTML = window.defVal);void(document.title = 'RSS/Atom feed parser');" target="_self">Reset</a></h1>
<form method="post" action="rss.html" name="feedForm" onsubmit="if(window.myInterval){window.clearInterval(window.myInterval);}if(importXML('rssLocal.php?feedURL='+escape(this.feedURL.value)+(this.fix091.checked?'&fix091=1':''),'parseRSS',false,2000)){if(parseFloat(this.interv.value)){window.myInterval=window.setInterval('importXML(\'rssLocal.php?feedURL='+escape(this.feedURL.value)+(this.fix091.checked?'&fix091=1':'')+'\',\'parseRSS\',false,2000);',parseFloat(this.interv.value)*60000);}}else{alert('Your browser cannot import XML, so it cannot view RSS feeds using this script');}return false;" target="_self">
<p>
<label for="feedURL">Feed URL:</label>
<input type="text" name="feedURL" id="feedURL" size="70" value="http://news.bbc.co.uk/rss/newsonline_uk_edition/front_page/rss091.xml">
<label for="interv" title="In minutes - 0 for no refresh" style="border-bottom:1px dashed #000;cursor:help;">Refresh interval:</label>
<input type="text" name="interv" id="interv" size="3" value="0" onblur="var oNum=parseFloat(this.value);if(isNaN(oNum)||oNum<0){oNum=0;}this.value=oNum;">
<input type="submit" value="Go">
<input type="checkbox" value="1" name="fix091" id="fix091">
<label for="fix091">Allow HTML in RSS 0.91</label>
</p>
</form>
<div id="feedcontainer">For use with Internet Explorer 5+ on Windows and Mac, Opera 7+, Mozilla/Netscape 6+, and Safari 1.2+.
Opera 7-7.5 and IE 5 Mac users may find that long RSS feeds are truncated. This is fixed in Opera 7.6.<br>
<br>Warning: any scripts contained in the feed may be run</div>
</body>
</html>
