Patrik81Medlem sedan okt. 2001537 inlägg
Satt här och fipplade lite med xhtml, som jag är helt ny på, och så satt jag och läste på w3schools där de sa att man skall byta ut name="" mot id="" på input taggar etc.
D.v.s
<input type="text" id="fnamn" />
istället för det traditionella
<input type="text" name="fnamn">
men eftersom php använder sig utav name="" för att skapa sina variabler (exempelvis $_POST['fnamn'] ) så blev jag lite nyfiken på om php klarar av id="" med, och ok, nu kör jag en gammal version av php (4.0.6) men om man byter ut alla name="" mot id="" hur skall man då göra?
Det står ju iofs. på w3schools också att man för bakåtkompabilitetens skull skall använda bägge
<input type="text" name="fnamn" id="fnamn" />
men funkar det om man ska köra strict xhtml?
Bara en tanke...
Kanske mer en php fråga än en xhtml fråga, så det är möjligt att jag postat denna fel, ber om ursäkt om så är fallet.
MVH Patrik
GunnarDMedlem sedan juni 20014 250 inlägg
Borde inte vara några problem eftersom PHP inte ser forumlären eller hur variablerna är skapade.
webläsaren skickar ju bara "variabelnamn=värde" till servern oavsett hur ditt formulär ser ut.
Snarare borde det vara problem med äldre versioner av webläsarna.
Peter SMedlem sedan dec. 20025 484 inlägg
men funkar det om man ska köra strict xhtml?
Svar: Ja.
Se även http://www.w3.org/TR/xhtml1/#h-4.10
:)
Patrik81Medlem sedan okt. 2001537 inlägg
Jag slängde ihop lite kod för att testa det, men det gick inte alltför bra :(
<?php
// xhtml test
if(isset($HTTP_POST_VARS['xhtml'])){
echo("Det funkar fint att sätta id istället för name på input elementen");
} else {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml-strict.dtd">
<html>
<head>
<title>xhtml test</title>
</head>
<body>
<form action="test.xhtml.php" method="post">
<input type="text" id="xhtml" /> Skriv något!<br />
<input type="submit" value="Submit!" />
</form>
</body>
</html>
<?php
}
?>
och det funkade inget vidare med GET heller :(
Men så har jag förstås inte kollat i någon nyare version av php heller... kanske funkar bättre där...
Nåväl, får fortsätta att testa...
MVH Patrik
Peter SMedlem sedan dec. 20025 484 inlägg
När det gäller XHTML så fungerar det inte p.g.a.:
1. Du har inte definierat någon charset. Ex:
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
2. Dina input-taggar måste ligga i exempelvis en <div>
Fungerande kod:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml-strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>xhtml test</title>
</head>
<body>
<form action="test.xhtml.php" method="post">
<div><input type="text" id="xhtml" /> Skriv något!<br /></div>
<div><input type="submit" value="Submit!" /></div>
</form>
</body>
</html>
:)
GunnarDMedlem sedan juni 20014 250 inlägg
Här är en variant som går igenom w3c validator
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>xhtml test</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-15" />
</head>
<body>
<?php
// xhtml test
if(isset($xhtml)){
echo("<p>Det funkar fint att sätta id istället för name på input elementen</p>");
} else {
?>
<form action="test.phtml" method="post">
<div>
<input type="text" id="xhtml" /> Skriv något!<br />
<input type="submit" value="Submit!" />
</div>
</form>
</body>
</html>
<?php
}
?>
Har kollat lite vad min webserver (Apache 1.3.27, PHP 4.3.0) får från webläsaren (Mozilla 1.2 och IE 6) och det är inte mycket, verkar som om mozilla'n inte skickar med variablen om man använder id.
GunnarDMedlem sedan juni 20014 250 inlägg
Om man tittar på xhtml standarden så skall variabelns namn sättas via name.
HTML 4 defined the name attribute for the elements a, applet, form, frame, iframe, img, and map. HTML 4 also introduced the id attribute. Both of these attributes are designed to be used as fragment identifiers.
.
.
.
Note that in XHTML 1.0, the name attribute of these elements is formally deprecated, and will be removed in a subsequent version of XHTML.
Name är alltså deprecated för taggarna applet, form, frame, iframe, img och map.
Input tagen står inte med, det är name i form tagen som nu är deprecated och man skall använda id istället, det gäller alltså inte input taggen.
Patrik81Medlem sedan okt. 2001537 inlägg
Där ser man, då har jag lärt mig en hel del idag då =)
Jag får tacka för det visade intresset, och för att ni har tålamod med mig =)
MVH Patrik
jarvkloMedlem sedan juli 20013 295 inlägg
Peter S skrev:
2. Dina input-taggar måste ligga i exempelvis en <div>
Hmm...
Med det tillägget att det bara är i i xhtml 1.0 Strict som man måste ha t.ex. en <div> runt <input/>-taggarna i ett formulär...
Ur DTD:n:
<!ENTITY % form.content "(%block; | %misc;)*">
I xhtml 1.0 Transitional kan man fortfarande "köra utan" precis som i gammal hederlig html4 Transitional -
Ur DTD:n
<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*">
Allt beror (som vanligt) alltså på vilken <!DOCTYPE man valt för sin sida ;)
Peter SMedlem sedan dec. 20025 484 inlägg
Allt beror (som vanligt) alltså på vilken <!DOCTYPE man valt för sin sida
Ja, och han använder ju strict. Därav mitt svar.
men funkar det om man ska köra strict xhtml?
:)
jarvkloMedlem sedan juli 20013 295 inlägg
Sorry att jag var otydlig...
Klargörandet gällde alltså kombinationen:
När det gäller XHTML så...
...
2) Dina input-taggar måste ligga i exempelvis en <div>
Som jag fick för mig eventuellt kunde missuppfattas av någon som inte läser <!DOCTYPE så noga.
Ledsen om du uppfattade det som kritik av ditt svar... Det var inte så det var menat :bire
Peter SMedlem sedan dec. 20025 484 inlägg
No offence taken :birp
:)