HTML-taggar som inte har någon "stäng"-tagg ska avslutas med "/>" istället för bara ">".
Exempel på taggar som ska avslutas />
<br/>
<img/>
<input/>
Exempel på taggar som har "stäng"-tagg
<form></form>
<body></body>
<p></p>
<div></div>
71 svar · 3 202 visningar · startad av maweer · sida 2 av 4
Jag borde egentligen kanske inte startat en ny tråd, då jag redan har berört detta i en tidigare. Ber om ursäkt i så fall! Men, då felet egentligen inte har med den andra tråden att göra, så valde jag att jag göra så här. (dock är det samma kod) :) Nu till min fråga: Hur får jag med värdet från id i en submit? Jag får nämligen inte det nu när jag submitar mitt formulär Ber nu om ursäkt för mycke
Läs frågan i sin helhet →HTML-taggar som inte har någon "stäng"-tagg ska avslutas med "/>" istället för bara ">".
Exempel på taggar som ska avslutas />
<br/>
<img/>
<input/>
Exempel på taggar som har "stäng"-tagg
<form></form>
<body></body>
<p></p>
<div></div>
Hmmm...måste säga att jag nog inte blev mycket klokare haha
Skall alla html-taggar avslutas med /> typ
istället föreller vad menas med
Line 89, Column 53: end tag for "input" omitted, but OMITTAG NO was specified
You may have neglected to close an element, or perhaps you meant to "self-close" an element, that is, ending it with "/>" instead of ">".
Beror på vilken doctype du kör, men med xhtml måste alla element stängas
Jaha :) Coooolt, det hade jag ingen aning om :)
Har det alltid varit så? Eller det är något nytt
Beror på vilken doctype du kör, men med xhtml måste alla element stängas
Oj...vad jag är dålig på detta!!! Måste nog vara sämre än sämst tror jag :)
Skall sanningen fram så vet jag inte:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="sv">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
Du kör xhtml1-transitional finns strict med, men enklast är att gå över till html5 där kan du välja att köra xhtml eller html syntax... Jag gillar xhtml strukturen mer
Nu har jag gjort alla tappra försök som jag kan för att städa upp i min kod.
Jag hoppas verkligen att den ser bättre ut nu och att den inte är lika hemsk längre :P :) :)
Valideringen på w3c var verkligen en kanon bra hjälp :)
Men, jag har 4 Errors kvar som jag har kliat mig i huvudet över sen i torsdags, och hur jag än gör så får jag antingen fler errors eller så blir antalet det samma.
Är det någon som kan se felen så blir jag jätte tacksam...för jag fattar noll :)
Line 133, Column 25: document type does not allow element "table" here
<table class="gridtable"><tr><th class="datum">Datum</th><th class="tid">Tid</t…
Line 135, Column 43: document type does not allow element "html" here
<html xmlns="http://www.w3.org/1999/xhtml">
Line 147, Column 4: document type does not allow element "tr" here; assuming missing "table" start-tag
<tr><td>2012-08-25</td><td>15:00</td><td>sdfgsd</td><td> <input type="checkbox"…
Line 150, Column 9: end tag for "table" omitted, but OMITTAG NO was specified
Denna gäller den allra sista </html> i slutet av min kod.
Här är hela min kod (förlåt!!!)
<?php
include "conn.php";
if(isset($_POST['Spara'])) { // om knappens namn är Spara
$tony = isset($_POST['tony']) ? 1 : 0;
$ulf = isset($_POST['ulf']) ? 1 : 0;
$carina = isset($_POST['carina']) ? 1 : 0;
$anders = isset($_POST['anders']) ? 1 : 0;
$magnus = isset($_POST['magnus']) ? 1 : 0;
$insert = "INSERT INTO ".eva_spelningar." (tony, ulf, carina, anders, magnus)
VALUES ('$tony', '$ulf', '$carina', '$anders', '$magnus') WHERE id = '{$_POST['id']}'";
mysql_query($insert);
header("Location: form.php?id=".$_POST['id']);
exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="sv">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>Eva Evenemang</title>
<style type="text/css">
<!--
Massa css
-->
</style>
</head>
<body>
<div id="form">
<form id="form1" method="post" action="write.php" enctype="multipart/form-data" class="padding">
<input type="hidden" name="MAX_FILE_SIZE" value="3000" />
<fieldset>
<label>Tid <span class="red">(ex. 13:00)</span><br />
<input type="text" name="tid" style="width: 160px;" /></label><br />
<label>Datum <span class="red">(Y-M-D)</span>:<br />
<input type="text" name="datum" style="width: 160px;" /></label><br />
<label>Var:<br />
<input type="text" name="plats" style="width: 160px;" /></label><br />
<label>Detaljerad beskrivning:<br />
<textarea name="beskrivning" cols="35" rows="6"></textarea></label><br />
<br />
<input type="file" name="karta" /> <input type="submit" name="klar" value="Skicka" />
</fieldset>
</form>
</div>
Alla evenemang
</body>
</html>
<?php
$sql = mysql_query("SELECT * FROM eva_spelningar ORDER BY id DESC");
if (mysql_num_rows($sql) == 0) {
echo "För tillfället finns inga evenemang";
}
while ($rad = mysql_fetch_array($sql))
{
$id = $rad['id'];
$tid = $rad['tid'];
$datum = $rad['datum'];
$plats = $rad['plats'];
echo('<table class="gridtable">');
echo("<tr>");
echo('<th class="datum">Datum</th>');
echo('<th class="tid">Tid</th>');
echo('<th class="plats">Plats</th>');
echo('<th class="namn">Tony</th>');
echo('<th class="namn">Ulf</th>');
echo('<th class="namn">Carina</th>');
echo('<th class="namn">Anders</th>');
echo('<th class="namn">Magnus</th>');
echo("<td><a href=\"delete.php?id={$rad['id']}\" onclick=\"javascript:return confirm('Säkert att du vill radera ?');\"><img src=\"delete.gif\" alt=\"Image\" /></a></td>");
echo("<td> </td>");
echo("<td><a href=\"beskrivning.php?id={$rad['id']}\">Läs mer!</a></td>");
echo("</tr>");
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Eva Evenemang</title>
</head>
<body>
<form method="post" action="<?php echo $PHP_SELF;?>">
<input type="hidden" name="id" value="<?php echo $id ?>" />
<?php
echo("<tr>");
echo("<td>");
echo($rad["datum"]);
echo("</td>");
echo("<td>");
echo($rad["tid"]);
echo("</td>");
echo("<td>");
echo($rad["plats"]);
echo("</td>");
echo('<td> <input type="checkbox" name="tony" value="tony" /> </td>');
echo('<td> <input type="checkbox" name="ulf" value="ulf" /> </td>');
echo('<td> <input type="checkbox" name="carina" value="carina" /> </td>');
echo('<td> <input type="checkbox" name="anders" value="anders" /> </td>');
echo('<td> <input type="checkbox" name="magnus" value="magnus" /> </td>');
echo('<td> <input type="submit" value="Spara" name="Spara" /> </td>');
echo("</tr>");
echo("</table>");
}
?>
</form>
</body>
</html>
Tyvärr kvarstår ju också fortfarande mina tidigare problem att jag inte får koden att göra det jag vill att den skall göra :r
du kan börja med att flytta
</body>
</html>
längst ner på din sida. och ta bort <html xmlns> bitarna längre ner på sidan, endast ett <html>, <head> och <body> block skall finnas på en sida.
du få inte ha ett <form> direkt under en <table>.
dina tabellrader (tr) måste ju ha en tabell runt sig, eller så kommer du få det om du plocka bort html blocken som du skapar...
Nu har jag inte testat men rensat:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="sv">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>Eva Evenemang</title>
<style type="text/css">
<!--
Massa css
-->
</style>
</head>
<body>
<div id="form">
<form id="form1" method="post" action="write.php" enctype="multipart/form-data" class="padding">
<input type="hidden" name="MAX_FILE_SIZE" value="3000" />
<fieldset>
<label>Tid <span class="red">(ex. 13:00)</span><br />
<input type="text" name="tid" style="width: 160px;" /></label><br />
<label>Datum <span class="red">(Y-M-D)</span>:<br />
<input type="text" name="datum" style="width: 160px;" /></label><br />
<label>Var:<br />
<input type="text" name="plats" style="width: 160px;" /></label><br />
<label>Detaljerad beskrivning:<br />
<textarea name="beskrivning" cols="35" rows="6"></textarea></label><br />
<br />
<input type="file" name="karta" /> <input type="submit" name="klar" value="Skicka" />
</fieldset>
</form>
</div>
<h2>Alla evenemang</h2>
<?php
$sql = mysql_query("SELECT * FROM eva_spelningar ORDER BY id DESC");
if (mysql_num_rows($sql) == 0) {
echo "För tillfället finns inga evenemang";
}
while ($rad = mysql_fetch_array($sql)) {
$id = $rad['id'];
$tid = $rad['tid'];
$datum = $rad['datum'];
$plats = $rad['plats'];
echo('<form method="post" action="<?php echo $PHP_SELF;?>">');
echo('<input type="hidden" name="id" value="<?php echo $id ?>" />');
echo('<table class="gridtable">');
echo("<tr>");
echo('<th class="datum">Datum</th>');
echo('<th class="tid">Tid</th>');
echo('<th class="plats">Plats</th>');
echo('<th class="namn">Tony</th>');
echo('<th class="namn">Ulf</th>');
echo('<th class="namn">Carina</th>');
echo('<th class="namn">Anders</th>');
echo('<th class="namn">Magnus</th>');
echo("<td><a href=\"delete.php?id={$rad['id']}\" onclick=\"javascript:return confirm('Säkert att du vill radera ?');\"><img src=\"delete.gif\" alt=\"Image\" /></a></td>");
echo("<td> </td>");
echo("<td><a href=\"beskrivning.php?id={$rad['id']}\">Läs mer!</a></td>");
echo("</tr>");
echo("<tr>");
echo("<td>");
echo($rad["datum"]);
echo("</td>");
echo("<td>");
echo($rad["tid"]);
echo("</td>");
echo("<td>");
echo($rad["plats"]);
echo("</td>");
echo('<td> <input type="checkbox" name="tony" value="tony" /> </td>');
echo('<td> <input type="checkbox" name="ulf" value="ulf" /> </td>');
echo('<td> <input type="checkbox" name="carina" value="carina" /> </td>');
echo('<td> <input type="checkbox" name="anders" value="anders" /> </td>');
echo('<td> <input type="checkbox" name="magnus" value="magnus" /> </td>');
echo('<td> <input type="submit" value="Spara" name="Spara" /> </td>');
echo("</tr>");
echo("</table>");
echo('</form>')
}
?>
</body>
</html>
Oh...tack så jätte mycket! :) Super snällt!!
Ja just det! Så är det ju att endast <html>, <head> och <body> block skall finnas på en sida. Tack för påminnelsen...det hade jag glömt :r
Så mycket nytt jag har lärt mig...coolt är vad det är :)
Jag visste inte att man inte fick ha <form> direkt under en <table>.
Din kod funkar kanon bra :)
Men när jag trycker på "Spara" så får jag upp i min webläsare
The requested URL /eva_spelningar/< was not found on this server.
Jag kopierade din kod rakt av, men jag har nog lyckats att slinta med fingrarna på tangentbordet, någon stans....tror jag.
Tyder inte det på att jag har lyckats att få ett < förmycket eller ett > för lite någon stans?
Jag har letat och letat men jag hittar det inte någon stans
<?php
include "conn.php";
if(isset($_POST['Spara'])) { // om knappens namn är Spara
$tony = isset($_POST['tony']) ? 1 : 0;
$ulf = isset($_POST['ulf']) ? 1 : 0;
$carina = isset($_POST['carina']) ? 1 : 0;
$anders = isset($_POST['anders']) ? 1 : 0;
$magnus = isset($_POST['magnus']) ? 1 : 0;
$insert = "INSERT INTO ".eva_spelningar." (tony, ulf, carina, anders, magnus)
VALUES ('$tony', '$ulf', '$carina', '$anders', '$magnus') WHERE id = '{$_POST['id']}'";
mysql_query($insert);
header("Location: form.php?id=".$_POST['id']);
exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="sv">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>Eva Evenemang</title>
<style type="text/css">
<!--
CSS
-->
</style>
</head>
<body>
<div id="form">
<form id="form1" method="post" action="write.php" enctype="multipart/form-data" class="padding">
<input type="hidden" name="MAX_FILE_SIZE" value="3000" />
<fieldset>
<label>Tid <span class="red">(ex. 13:00)</span><br />
<input type="text" name="tid" style="width: 160px;" /></label><br />
<label>Datum <span class="red">(Y-M-D)</span>:<br />
<input type="text" name="datum" style="width: 160px;" /></label><br />
<label>Var:<br />
<input type="text" name="plats" style="width: 160px;" /></label><br />
<label>Detaljerad beskrivning:<br />
<textarea name="beskrivning" cols="35" rows="6"></textarea></label><br />
<br />
<input type="file" name="karta" /> <input type="submit" name="klar" value="Skicka" />
</fieldset>
</form>
</div>
<h2>Alla evenemang</h2>
<?php
$sql = mysql_query("SELECT * FROM eva_spelningar ORDER BY id DESC");
if (mysql_num_rows($sql) == 0) {
echo "För tillfället finns inga evenemang";
}
while ($rad = mysql_fetch_array($sql)) {
$id = $rad['id'];
$tid = $rad['tid'];
$datum = $rad['datum'];
$plats = $rad['plats'];
echo('<form method="post" action="<?php echo $PHP_SELF; ?>">');
echo('<input type="hidden" name="id" value="<?php echo $id ?>" />');
echo('<table class="gridtable">');
echo("<tr>");
echo('<th class="datum">Datum</th>');
echo('<th class="tid">Tid</th>');
echo('<th class="plats">Plats</th>');
echo('<th class="namn">Tony</th>');
echo('<th class="namn">Ulf</th>');
echo('<th class="namn">Carina</th>');
echo('<th class="namn">Anders</th>');
echo('<th class="namn">Magnus</th>');
echo("<td><a href=\"delete.php?id={$rad['id']}\" onclick=\"javascript:return confirm('Säkert att du vill radera ?');\"><img src=\"delete.gif\" alt=\"Image\" /></a></td>");
echo("<td> </td>");
echo("<td><a href=\"beskrivning.php?id={$rad['id']}\">Läs mer!</a></td>");
echo("</tr>");
echo("<tr>");
echo("<td>");
echo($rad["datum"]);
echo("</td>");
echo("<td>");
echo($rad["tid"]);
echo("</td>");
echo("<td>");
echo($rad["plats"]);
echo("</td>");
echo('<td> <input type="checkbox" name="tony" value="tony" /> </td>');
echo('<td> <input type="checkbox" name="ulf" value="ulf" /> </td>');
echo('<td> <input type="checkbox" name="carina" value="carina" /> </td>');
echo('<td> <input type="checkbox" name="anders" value="anders" /> </td>');
echo('<td> <input type="checkbox" name="magnus" value="magnus" /> </td>');
echo('<td> <input type="submit" value="Spara" name="Spara" /> </td>');
echo("</tr>");
echo("</table>");
echo('</form>');
}
?>
</body>
</html>
Ja men nu ser jag....Tror jag iaf :P
Jag har ju två php i samma och två echo i samma
echo('<form method="post" action="<?php echo $PHP_SELF; ?>">');
Men, nu står det fullkomligt still i mitt huvud tydligen...
Jag har testat massa olika förslag men jag får serverfel när jag försöker ändra det.
Sen gjorde jag så här
echo("<input type=\"hidden\" name=\"id\" value=\"{$rad['id']}\" />");
och då visar den rätt id i urln men jag får inte in något värde (1 eller 0) i min tabell
Ja men nu ser jag....Tror jag iaf :P
Jag har ju två php i samma och två echo i samma
echo('<form method="post" action="<?php echo $PHP_SELF; ?>">');Men, nu står det fullkomligt still i mitt huvud tydligen...
Jag har testat massa olika förslag men jag får serverfel när jag försöker ändra det.Sen gjorde jag så här
echo("<input type=\"hidden\" name=\"id\" value=\"{$rad['id']}\" />");och då visar den rätt id i urln men jag får inte in något värde (1 eller 0) i min tabell
EDIT
En kopp kaffe really did the trick! :)
Jag kom en liten lösning:
echo("<form method=\"post\" action=\"{$_SERVER['PHP_SELF']}\">");
echo("<input type=\"hidden\" name=\"id\" value=\"{$rad['id']}\" />");
Men, nu återstår ju fortfarande problemet med att jag inte får med något värde till min DB hahaha
var kommer variablen eva_spelningar in? hur ser $insert (kommentera ut så du inte redirectas till din form.php?id= sida
eva_spelningar är min tabell
$sql = mysql_query("SELECT * FROM eva_spelningar ORDER BY id DESC");
och min $insert med den tilltänka koden som skall lägga till 1 och 0 i tabellen
ser ut så här
if(isset($_POST['Spara'])) { // om knappens namn är Spara
$tony = isset($_POST['tony']) ? 1 : 0;
$ulf = isset($_POST['ulf']) ? 1 : 0;
$carina = isset($_POST['carina']) ? 1 : 0;
$anders = isset($_POST['anders']) ? 1 : 0;
$magnus = isset($_POST['magnus']) ? 1 : 0;
$insert = "INSERT INTO ".eva_spelningar." (tony, ulf, carina, anders, magnus)
VALUES ('$tony', '$ulf', '$carina', '$anders', '$magnus') WHERE id = '{$_POST['id']}'";
mysql_query($insert);
men det är inte det jag säger... du har ju en variabel som heter eva_spelningar (borde nog inte ens fungera utan $)
$insert = "INSERT INTO eva_spelningar (tony, ulf, carina, anders, magnus)
VALUES ('$tony', '$ulf', '$carina', '$anders', '$magnus') WHERE id = '{$_POST['id']}'";
skall den vara i såfall... och skriv ut din $insert och prova köra sql frågan i mysql och se om den kör en insert
echo($insert); för att se din SQL fråga.
och vad är alla fältnamn för datatyp? är det strängar, tal eller sant/falskt?
Men alltså vad håller jag på med...Klart att den skall se ut så :r
Så här ser min SQL fråga ut när jag skriver ut den och har kryssat i Tony
INSERT INTO eva_spelningar (tony, ulf, carina, anders, magnus) VALUES ('1', '0', '0', '0', '0') WHERE id = '340'
om jag använder mig av denna
$insert = "INSERT INTO eva_spelningar (tony, ulf, carina, anders, magnus)
VALUES ('$tony', '$ulf', '$carina', '$anders', '$magnus') WHERE id = '{$_POST['id']}'";
Så skrivs inget värde i tabellen in
Men, däremot om jag tar bort WHER id =....
$insert = "INSERT INTO eva_spelningar (tony, ulf, carina, anders, magnus)
VALUES ('$tony', '$ulf', '$carina', '$anders', '$magnus')";
Så skrivs värdet in i tabellen, men då läggs också ofrivilligt en extra post till
Jag tycker att det verkar lite helmysko :)
Hur ser din tabellstruktur ut då? är ID ett tal eller en sträng?
$insert = "INSERT INTO eva_spelningar (tony, ulf, carina, anders, magnus)
VALUES ('$tony', '$ulf', '$carina', '$anders', '$magnus') WHERE id = {$_POST['id']}";
Alltså. Ska man uppdatera en befintlig post använder man UPDATE. Ska man stoppa in en ny post använder man INSERT.
Eftersom du inte tar emot felmeddelandet någonstans märker du inte att din insert med where kraschar.
UPDATE tabellnamn SET fältnamn = värde, fältnamn2 = värde WHERE id = 1
Alltså. Ska man uppdatera en befintlig post använder man UPDATE. Ska man stoppa in en ny post använder man INSERT.
Eftersom du inte tar emot felmeddelandet någonstans märker du inte att din insert med where kraschar.
UPDATE tabellnamn SET fältnamn = värde, fältnamn2 = värde WHERE id = 1
+1
Tabellstrukturen ser ut så här för id
CREATE TABLE eva_spelningar (
id int(11) NOT NULL auto_increment,
.........
massa andra tabeller........
......
PRIMARY KEY (id)
) TYPE=MyISAM;
Jo jag funderade på UPDATE också och testade detta (vilket funkade)
if(isset($_POST['spara'])) { // om knappens namn är spara
$sql = "
UPDATE eva_spelningar
SET tony = '{$_POST['tony']}',
ulf = '{$_POST['ulf']}',
carina = '{$_POST['carina']}',
anders = '{$_POST['anders']}',
magnus = '{$_POST['magnus']}'
WHERE id = '{$_POST['id']}'
";
mysql_query($sql) or die(mysql_error());
header("Location: form.php?id=".$_POST['id']);
exit;
}
men jag blev jätte konfunderad och osäker på om jag skulle använda det för tanken är att alla fem namnen skall kunna checka för. Och jag fick inte det att funka. Posterna uppdateras ju hela tiden här.
Tanken är att den skall förbli "checkt" hela tiden även om person 2-5 kryssar i sin checkbox och inte ändras.
Fast, det beror nog mer på min kodning att det blir fel antar jag hahaha
Ska man bara kunna kryssa i "sin egen" checkbox? I så fall: se till att bara uppdatera det fältet.
UPDATE eva_spelningar SET anders = 1 WHERE id = 4711