Html dropdown form + php

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bjorn

bjorn

22/11/2006 20:15:00
Quote Anchor link
eay mensen.
Is het mogelijk om een form te maken met zo'n dropdown ding. Die en die vervolgens door te linken naar een script die de keuze die je hebt gemaakt bij dat dropdown ding door middel van Get_post of door middel van $_post binnen te halen in het script. En als je dan je keuze hebt gemaakt dat dan het dropdown ding weggaat ?
Alvast bedankt
Bjorn
 
PHP hulp

PHP hulp

04/12/2024 09:36:05
 
Bo az

Bo az

22/11/2006 20:18:00
Quote Anchor link
Het kan aan mij liggen maar je verhaal is niet erg duidelijk. Misschien moet je het nog eens door lezen en kijken of je het (in beter Nederlands) kan verwoorden?
 
Joren de Wit

Joren de Wit

22/11/2006 20:25:00
Quote Anchor link
Ja natuurlijk is dat mogelijk. Een heel eenvoudig voorbeeldje:
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
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    echo 'Je hebt gestemd op: '.$_POST['partij'];
}

else
{
    ?>

    <form method="post" action="#">
        <label for="partij">Kies een partij:</label>
        <select name="partij" id="partij">
            <option>PvdA</option>
            <option>CDA</option>
            <option>VVD</option>
            <option>SP</option>
        </select>
        <input type="submit" value="Stem!" />
    </form>
    <?php
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Bjorn

bjorn

22/11/2006 20:26:00
Quote Anchor link
haha klopt.. sorry daarvoor..
ik wil een rating systeem maken. dat mensen kunnen KIEZEN tussen 1 t/m 10. Net zoals hierboven op het forum daar kan je kiezen tussen jump to php of jump to mysql enzo.
Dat wil ik dus eigenlijk en dat je het dan net zo kan verwerken als met een gewoon normaal html form bijvoorbeeld zoals ik hieronder even voor zal doen.
Het input gedeelte :
<form>
kies je leeftijd <textarea..blahblahblah name="leeftijd" action="verwerken.php>
</form>
en dan in het volgende script (verwerken.php)
$leeftijd=$_pos['leeftijd']

ik hoop dat je dat bekent voorkomt. Dat wil ik dus alleen dan niet met ene open textarea. maar dat mensen met een dropdown een keuze kunnen maken tussen 1,2,3,4,5,6,7,8,9,10

Ik hoop dat het nu wel duidelijk is.
 
Bjorn

bjorn

22/11/2006 20:30:00
Quote Anchor link
blanche dat is inderdaat wat ik bedoel. alleen dan nog een een variabel maken van de keuze die je hebt gemaakt. Dat zou helemaal geweldig zijn. Zou je dat a.u.b kunnen uitleggen hoe dat moet ?
Bij voorbaat dank
 
Kumkwat Trender

Kumkwat Trender

22/11/2006 20:32:00
Quote Anchor link
@Bjorn
Eej er zijn edit knopjes


Blanche hoe maak je zo`n form bij phphulp.nl ik bedoel dat 1 2 3 lijning
Gewijzigd op 01/01/1970 01:00:00 door Kumkwat Trender
 
Joren de Wit

Joren de Wit

22/11/2006 20:36:00
Quote Anchor link
@bjorn: dat ligt voor de hand:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    $partij = $_POST['partij'];
}

?>

Normaal gesproken doe je dit niet, tenzij je wat veranderd aan de variabele $_POST['partij']. Stel bijvoorbeeld dat het een door de gebruiker ingevoerde waarde is die je in een database wilt zetten, dan wil je de functie mysql_real_escape_string() gebruiken. Dan zou je doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    $partij = mysql_real_escape_string($_POST['partij']);
}

?>


Maar als je niets aan de variabele verandert kun je gewoon de variabele $_POST['partij'] blijven gebruiken.

ps. @peter: wat bedoel je met 1 2 3 lijnig?
pps. Bedoel je soms het code veld? Dat doe je met de tags.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Bjorn

bjorn

22/11/2006 20:39:00
Quote Anchor link
ik wil het inderdaat in eeen database gaan zetten.. alleen snap ik de mysql_real_escape_string niet dus ik doe het een beetje met een omweg door van de post een variabel te maken en die vervolgens te sturen naar de database.. Ik moet het ook niet te moeilijk doen anders gelooft mijn informatica leeraar mij niet meer dat ik het zelf gemaakt heb ;) :P
 
Joren de Wit

Joren de Wit

22/11/2006 20:42:00
Quote Anchor link
mysql_real_escape_string() moet je gebruiken als je door de gebruiker ingevulde gegevens naar de database wilt sturen. Deze functie zorgt ervoor dat alle speciale tekens waardoor je mysql query kan mislukken geëscaped worden. Dit voorkomt tevens de mogelijkheid tot sql injectie.

Maar dan kun je toch gewoon het tweede voorbeeldje gebruiken dat ik ga in mijn post van 20.36 uur? Je kunt dan gewoon de variabele $partij zonder problemen in je database zetten.
 
Bjorn

bjorn

22/11/2006 20:52:00
Quote Anchor link
maar waar moet ik dan aangeven in welke kolom van de tabel de gegevens moeten worden geplaatst ?
 
Jan Koehoorn

Jan Koehoorn

22/11/2006 20:56:00
Quote Anchor link
Bijvoorbeeld zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
    $sql
= "
        INSERT INTO tabelnaam
        (partij)
        VALUES
        ('"
. $partij . "')
        "
;
    if (!mysql_query ($sql)) {
        trigger_error (mysql_error ());
    }

?>
 
Bjorn

bjorn

22/11/2006 21:00:00
Quote Anchor link
Ja zat ik net al aan te denken en te proberen ;) Bedankt alvast.. Als er nog problemen voordoen dan laat ik het wel weten.. allemaal bedankt voor de snelle reactie's
 
Kumkwat Trender

Kumkwat Trender

22/11/2006 21:02:00
Quote Anchor link
Maar Bjorn je wou toch dropdown.
dus als je op een knop drukt dat het naar beneden gaat toch?

Volgens mij staat er nog steeds geen dropdown naar beneden
 
Bjorn

bjorn

22/11/2006 21:04:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
include "connect.php";
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    $score = mysql_real_escape_string($_POST['cijfer']);
$score = mysql_query("INSERT INTO `rating` (`score`)
VALEUS (`$score`);

}

else
{
    ?>

<form method="post" action="#">
<label for="partij">Kies een partij:</label>
<select name="partij" id="partij">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
</select>
<input type="submit" value="Stem!" />
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
}

Dit script had ik gemaakt en dan geeft hij de volgende foutmelding :SParse error: parse error, unexpected T_STRING in C:\wamp\www\test.php on line 13 ik heb de fout gezocht op regel 12/13/14 maar kon niets vinden. Iemand een oplossing ?
 
Joren de Wit

Joren de Wit

22/11/2006 21:07:00
Quote Anchor link
Je sluit je query op regel 5 niet af en haal tevens die backticks uit je query:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$score
= mysql_query("INSERT INTO rating (score) VALUES ('".$score."')");
?>
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Bjorn

bjorn

23/11/2006 18:02:00
Quote Anchor link
op een of andere manier kan ik die variabel $score niet meer oproepen :S . want ik heb zojuist een echo toegevoegd
echo "u score is $score";
en dat werkte niet :S
 
Joren de Wit

Joren de Wit

23/11/2006 18:07:00
Quote Anchor link
Tja, dat komt omdat je de namen van je variabelen niet helemaal logisch kiest. Je kiest voor alles de naam $score. Nadat jij je mysql_query dus hebt uitgevoerd heeft $score niet meer zijn oorspronkelijke waarde.

$score is hier helemaal geen logische keuze, aangezien het product van een mysql query een resultaat-set is, de naam $result ligt dus veel meer voor de hand.

En sinds wanneer pas je mysql_real_escape_string() toe op een cijfer? Je controleert dan gewoon met is_numeric() of het wel een cijfer is en dan voer je dat gewoon als integer in in je query. De enkele quotes die nu nog in mijn voorbeeldje rond $score staan, moet je dan weglaten.
 



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.