Spaties in value veroorzaken fout.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sneeuwvlok

Sneeuwvlok

18/05/2007 23:30:00
Quote Anchor link
hee!

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>";

?>


en van 4.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>";
?>

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?
 
PHP hulp

PHP hulp

18/10/2024 06:00:31
 
Jan Koehoorn

Jan Koehoorn

18/05/2007 23:43:00
Quote Anchor link
Dit stukje:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>";

        }
    }

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.
 
Sneeuwvlok

Sneeuwvlok

18/05/2007 23:45:00
Quote Anchor link
Jan Koehoorn schreef op 18.05.2007 23:43:
Dit stukje:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>";

        }
    }

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
 
Mark L

Mark L

19/05/2007 00:04:00
Quote Anchor link
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
Gewijzigd op 01/01/1970 01:00:00 door Mark L
 
Sneeuwvlok

Sneeuwvlok

19/05/2007 00:19:00
Quote Anchor link
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


Ey man, Bedankt, het werkt... Maar wat voegen die extra '-s nou toe aan de code waardoor het wel werkt?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.