PHP + javascript = validerings fel
Nu är jag less, har sökt och sökt och försökt en massa olika metoder för att få detta och fungera:
Det är så att jag gjort en sida åt en kund vars dem ville ha väderinformation från en specifik sida, dem hade ett script färdigt för sidor som kunde ändras efter önskemål.
Problemet är att när jag lägger in koden:
<script type="text/javascript" src="http://www.vackertvader.se
/weather/widget_request/2725136?bgcolor=4f4f4f&border=none&
days=2&key=-KEGu&maxtemp=no&size=x120&textcolor=ffffff&wind=no">
</script>
Så säger w3c validering att det är fel från varje & till =. Dvs. det blir 29 varningar och 19 errors. 42 av Dessa felmeddelanden ser ut så här:
# Line 492, Column 390: cannot generate system identifier for general entity "border"
…et_request/2725136?bgcolor=4f4f4f;'&border=none;'&days=2;&key=-KEGu&maxtemp=n
An entity reference was found in the document, but there is no reference by that name defined.
Often this is caused by misspelling the reference name,
unencoded ampersands, or by leaving off the trailing semicolon (;).
The most common cause of this error is unencoded ampersands in
URLs as described by the WDG in "Ampersands in URLs".
Entity references start with an ampersand (&) and end with a
semicolon (;). If you want to use a literal ampersand in your
document you must encode it as "&" (even inside URLs!).
Be careful to end entity references with a semicolon or your entity
reference may get interpreted in connection with the following text.
Also keep in mind that named entity references are case-sensitive;
&Aelig; and æ are different characters.
If this error appears in some markup generated by PHP's session
handling code, this article has explanations and solutions to your
problem.
Note that in most documents, errors related to entity references will
trigger up to 5 separate messages from the Validator. Usually these
will all disappear when the original problem is fixed.
# Error Line 492, Column 390: general entity "border" not defined
and no default entity
…et_request/2725136?bgcolor=4f4f4f;'&border=none;'&days=2;&key=-KEGu&maxtemp=n
This is usually a cascading error caused by a an undefined entity
reference or use of an unencoded ampersand (&) in an URL or body
text. See the previous message for further details.
och resterande 6 så här:
Line 492, Column > 80: XML Parsing Error: EntityRef: expecting ';'
…a id='url-KEGu' href="http://www.vackertvader.se/arvidsjaur" class="orange">A…
Nu börjar jag bli riktigt irriterad och lyckas inte hitta någon lösning.
All denna kod är i en php fil
Går det och lägga den här länken från vackertvader.se på något sätt i en *.js fil och ladda in den separat istället för ha hela A)#?#! koden i php filen?
Har även ett litet annat problem,
har en kodsnutt vars javascript tar information från en xml och xlst fil och laddar upp det i php dokumentet, all denna kod går ut på att mata in i en div och för att detta ske måste jag använda mig av <body onload="">.
Dock så gillar inte w3c att jag använder mig av <body> tags i php filer så den skäller på mig om och om igen.
Finns det någon annan lösning till detta?
Skriver även ut koden för att vara på den säkra sidan så slipper folk fråga efter den om någon är sugen på att hjälpa mig.
<script type="text/javascript">
<!--<![CDATA[
function loadXMLDoc(fname)
{
var xmlDoc;
// code for IE
if (window.ActiveXObject)
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
xmlDoc=document.implementation.createDocument("","",null);
}
else
{
alert('Your browser cannot handle this script');
}
xmlDoc.async=false;
xmlDoc.load(fname);
return(xmlDoc);
}
function displayResult()
{
xml=loadXMLDoc("../aida/fids.xml");
xsl=loadXMLDoc("../aida/fids.xslt");
// code for IE
if (window.ActiveXObject)
{
ex=xml.transformNode(xsl);
document.getElementById("flight").innerHTML=ex;
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation
&& document.implementation.createDocument)
{
xsltProcessor=new XSLTProcessor();
xsltProcessor.importStylesheet(xsl);
resultDocument = xsltProcessor.transformToFragment(xml,document);
document.getElementById("flight").appendChild(resultDocument);
}
}
]]>-->
</script>
<script type="text/javascript">
function setVisibility(id, visibility) {
document.getElementById(id).style.display = visibility;
}
</script>
<body onload="displayResult()">
Tacksam för svar
"Wise men say, 'Forgiveness is divine, but never pay full price for a late pizza'."