Spaties in value veroorzaken fout.
Om te beginnen, ik ben nieuw, dus als ik in het verkeerde subforum zit.... Niet slaan :)
Oke, ik ben dus sinds een dag of 2 bezig met php & Mysql, het gaat redelijk, ik heb tot nu toe alles kunnen oplossen zonder me te moeten registreren, maar zojuist is dan toch dat moment gekomen....
Ik heb een soort 'cijfer-systeem' gemaakt, ik voeg mijn cijfers die ik op school heb gehaald in, die hij vervolgens in de database gooit, en ik kan ze later terugzien als ik daar behoefte aan heb. Het bekijken van de cijfers werkt perfect, alleen bij het invoeren ervan zit ik met een 'klein probleem'
Hier een stukje code: (Van 3.php)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
mysql_connect ("localhost","*", "*");
mysql_select_db("*_School");
$sql = "SELECT id, Vak, Datum, DATE_FORMAT( Datum, '%d-%m-%Y' ) AS Datum
FROM Cijfers
GROUP BY Vak
";
$res = mysql_query($sql);
echo "<html>";
echo "<body>";
echo "<b><h2>Cijfer toevoegen</h2></b><p>";
echo "<form method='post' action='4.php'>";
echo " Vak: <select name='Vak'>";
echo "<option>Selecteer Vak</option>";
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
echo "<tr colspan= '2'><td>";
$row['Vak'] = substr($row['Vak'], 0, 31);
echo "<td>";
echo "<option value=". $row['Vak'] ." > " . $row['Vak'] . " </option>";
}
}
else
{
echo "Er zijn geen Cijfers.";
}
echo "</select>";
echo "<br>";
echo "Cijfer: <input maxlength='3' name='Cijfer' size='2'>";
echo "<br>";
echo "Weging: <input maxlength='2' name='Weging'size='2'>";
echo "<br>";
echo "Datum: <input maxlength='10'name='Datum' size='7' value=" . date("Y-m-d H:i:s") ."'>";
echo "<br>";
echo "<input type='submit' value='Voeg Toe!'>";
echo "</form>";
echo "<p><a href=\"1.php\">Vakken Overzicht</a></p>";
echo "</body>";
echo "</html>";
?>
mysql_connect ("localhost","*", "*");
mysql_select_db("*_School");
$sql = "SELECT id, Vak, Datum, DATE_FORMAT( Datum, '%d-%m-%Y' ) AS Datum
FROM Cijfers
GROUP BY Vak
";
$res = mysql_query($sql);
echo "<html>";
echo "<body>";
echo "<b><h2>Cijfer toevoegen</h2></b><p>";
echo "<form method='post' action='4.php'>";
echo " Vak: <select name='Vak'>";
echo "<option>Selecteer Vak</option>";
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
echo "<tr colspan= '2'><td>";
$row['Vak'] = substr($row['Vak'], 0, 31);
echo "<td>";
echo "<option value=". $row['Vak'] ." > " . $row['Vak'] . " </option>";
}
}
else
{
echo "Er zijn geen Cijfers.";
}
echo "</select>";
echo "<br>";
echo "Cijfer: <input maxlength='3' name='Cijfer' size='2'>";
echo "<br>";
echo "Weging: <input maxlength='2' name='Weging'size='2'>";
echo "<br>";
echo "Datum: <input maxlength='10'name='Datum' size='7' value=" . date("Y-m-d H:i:s") ."'>";
echo "<br>";
echo "<input type='submit' value='Voeg Toe!'>";
echo "</form>";
echo "<p><a href=\"1.php\">Vakken Overzicht</a></p>";
echo "</body>";
echo "</html>";
?>
en van 4.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
mysql_connect ("localhost","*", "*");
mysql_select_db("*_School");
$sql_TV = "INSERT INTO `Cijfers` (`Vak`, `Cijfer`, `Weging`, `Datum`)
VALUES (' " . $_POST['Vak'] . "', ' ". $_POST['Cijfer']. " ', ' ". $_POST['Weging']. " ' , ' " . $_POST['Datum']. " ' )";
$verzenden = mysql_query($sql_TV);
echo "Je hebt een <b>".$_POST['Cijfer']. "</b> met een weging van <b>".$_POST['Weging']. "</b> voor het vak <b>".$_POST['Vak']."</b> Toegevoegd.";
echo "<p><a href=\"1.php\">Vakken Overzicht</a></p>";
?>
mysql_connect ("localhost","*", "*");
mysql_select_db("*_School");
$sql_TV = "INSERT INTO `Cijfers` (`Vak`, `Cijfer`, `Weging`, `Datum`)
VALUES (' " . $_POST['Vak'] . "', ' ". $_POST['Cijfer']. " ', ' ". $_POST['Weging']. " ' , ' " . $_POST['Datum']. " ' )";
$verzenden = mysql_query($sql_TV);
echo "Je hebt een <b>".$_POST['Cijfer']. "</b> met een weging van <b>".$_POST['Weging']. "</b> voor het vak <b>".$_POST['Vak']."</b> Toegevoegd.";
echo "<p><a href=\"1.php\">Vakken Overzicht</a></p>";
?>
Echter heb ik vakken met meerdere woorden zoals 'Audio Visuele Vorming', in de code die de gebruiker krijgt te zien resulteert dat in
<select name="Vak">
<option>Selecteer Vak</option>
<option value="Aardrijkskunde"> Aardrijkskunde </option>
<option vorming="" visuele="" audio="" value="Beeldende"> Beeldende Audio Visuele Vorming </option>
<option value="Biologie"> Biologie </option>
Waar gaat het fout?
En hoe kan ik dit oplossen?
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
echo "<tr colspan= '2'><td>";
$row['Vak'] = substr($row['Vak'], 0, 31);
echo "<td>";
echo "<option value=". $row['Vak'] ." > " . $row['Vak'] . " </option>";
}
}
$row['Vak'] = substr($row['Vak'], 0, 31);
echo "<td>";
echo "<option value=". $row['Vak'] ." > " . $row['Vak'] . " </option>";
}
}
Is wel heel erg vreemd; je echoot namelijk td's en options door elkaar heen. Een lijst met options moet je na elkaar echoën zonder iets er tussen.
Jan Koehoorn schreef op 18.05.2007 23:43:
Dit stukje:
Is wel heel erg vreemd; je echoot namelijk td's en options door elkaar heen. Een lijst met options moet je na elkaar echoën zonder iets er tussen.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
echo "<tr colspan= '2'><td>";
$row['Vak'] = substr($row['Vak'], 0, 31);
echo "<td>";
echo "<option value=". $row['Vak'] ." > " . $row['Vak'] . " </option>";
}
}
$row['Vak'] = substr($row['Vak'], 0, 31);
echo "<td>";
echo "<option value=". $row['Vak'] ." > " . $row['Vak'] . " </option>";
}
}
Is wel heel erg vreemd; je echoot namelijk td's en options door elkaar heen. Een lijst met options moet je na elkaar echoën zonder iets er tussen.
Klopt ja, dat heb ik nu verbeterd, echter gaat het nog steeds mis wat betreft die spatie
ik weet 't antwoord:
value=". $row['Vak'] ."
Dit lijkt op value="..." maar dit is eigenlijk alleen maar value=
Bij een value= kan dus NOOIT een spatie staan.
Maak van value=". $row['Vak'] ." een value='". $row['Vak'] ."'
Edit:
Ik heb ook eens een fout gehad met javascript wat hierop leek:
Ik wilde een tekst in een textarea laten verschijnen als je op een link klikte (zelfde principe als een emoticon)
Maar met enters deed hij het op een of andere manier niet.
Heb ik 't maar met '\n' opgelost (de enters in \n maken... omdat in de broncode dan geen enter staat en het textareavenster wel een enter leest.
PS: Dit wilde ik gewoon even kwijt :p
Gewijzigd op 01/01/1970 01:00:00 door Mark L
Mark schreef op 19.05.2007 00:04:
Ik zat te denken... deze fout heb ik eerder gezien (bij mezelf)
ik weet 't antwoord:
value=". $row['Vak'] ."
Dit lijkt op value="..." maar dit is eigenlijk alleen maar value=
Bij een value= kan dus NOOIT een spatie staan.
Maak van value=". $row['Vak'] ." een value='". $row['Vak'] ."'
Edit:
Ik heb ook eens een fout gehad met javascript wat hierop leek:
Ik wilde een tekst in een textarea laten verschijnen als je op een link klikte (zelfde principe als een emoticon)
Maar met enters deed hij het op een of andere manier niet.
Heb ik 't maar met '\n' opgelost (de enters in \n maken... omdat in de broncode dan geen enter staat en het textareavenster wel een enter leest.
PS: Dit wilde ik gewoon even kwijt :p
ik weet 't antwoord:
value=". $row['Vak'] ."
Dit lijkt op value="..." maar dit is eigenlijk alleen maar value=
Bij een value= kan dus NOOIT een spatie staan.
Maak van value=". $row['Vak'] ." een value='". $row['Vak'] ."'
Edit:
Ik heb ook eens een fout gehad met javascript wat hierop leek:
Ik wilde een tekst in een textarea laten verschijnen als je op een link klikte (zelfde principe als een emoticon)
Maar met enters deed hij het op een of andere manier niet.
Heb ik 't maar met '\n' opgelost (de enters in \n maken... omdat in de broncode dan geen enter staat en het textareavenster wel een enter leest.
PS: Dit wilde ik gewoon even kwijt :p
Ey man, Bedankt, het werkt... Maar wat voegen die extra '-s nou toe aan de code waardoor het wel werkt?