Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[php] Database verbinden met drop-down menu opties.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo allemaal,

Ik ben bezig met een opdracht php.
Nu maak ik een drop-down menu, met daarin 4 plaatsen.
Als ik 1 van die plaatsen selecteer moet het de gegevens van de tandemassen die daar staan zichtbaar maken. Nu lukt het me wel om bijv. ''nummer= 1'' neer te zetten, 1 rij te krijgen. Maar hoe verbind ik het met de opties van het drop-down menu?
Ik ben nog maar net bezig met php en na vele uren zoeken heb ik hier nog geen antwoord op kunnen vinden. Zou iemand mij kunnen helpen? :)

<!DOCTYPE html>
<html lang="nl">
<head>
<meta charset="utf-8">
<title>Tandemassen per woonplaats</title>
</head>
<body>
<h3>Tandemassen per woonplaats</h3>
Kies plaats:
<select name="plaats">
<option value="1,2">Hilversum</option>
<option value="3">Haarlem</option>
<option value="4">Tilburg</option>
</select>
<br>
<br>
<?php
try {
$db = new PDO('mysql:host=localhost;dbname=Verhuur', 'root','');
}
catch(PDOException $e) {
echo $e->getMessage();
}
$sql='SELECT * FROM Aanhanger WHERE Nummer= ';
$resultaat = $db->query($sql);
echo '<table border = 1>';
foreach($resultaat as $row) {
echo '<tr>';
$nummer = $row['Woonplaats'];
echo '<td>'.$row['Woonplaats'].'</td>';
echo '<td>'.$row['Nummer'].'</td>';
echo '<td>'.$row['Tandemas'].'</td>';
echo '<td>'.$row['Huif'].'</td>';
echo '<td>'.$row['Kenteken'].'</td>';
echo '<td>'.$row['Naam'].'</td>';
echo '<td>'.$row['Adres'].'</td>';
echo '<td>'.$row['Telefoon'].'</td>';
echo '</tr>';
}
echo '</table>';
echo "<p><form action='menu.php' method='post'>
<input type='submit' name='submit' value='Menu'>
</form></p>";
$db = NULL;
?>
</body>
</html>

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 30-10 12:53

Douweegbertje

Wat kinderachtig.. godverdomme

Hoi en welkom :p

Even een paar dingen; ten eerste is het 'tandemassers' en je post is erg onduidelijk. Indien het één paragraaf tekst is, blijf dan van je enter toets af zodat het gewoon allemaal netjes achterelkaar komt en ondanks dat je misschien niet veel kennis hebt, moet je wel proberen zoveel mogelijk informatie te verschaffen. O.a. hoe je iets wilt, en waar je vast op loopt. Verder; gebruik de CODE tags en zorg dat je een goede editor gebruikt zodat de indents (spaties/tabs van de lines) een beetje duidelijk zijn (zie mijn voorbeeld).

In elk geval kunnen we met je vraag allerlei kanten op. Je kunt namelijk ook alle data al ophalen voordat iemand iets selecteert, waarbij je bijvoorbeeld met javascript de gewenste data afhankelijk van de keuze direct kunt laten zien. Dit kan overigens ook met ajax. Echter om het makkelijker te maken kun je het beste een formulier maken (html form). Dit form kun je versturen (html submit) waarbij dit naar bijvoorbeeld een PHP bestand verstuurd gaat worden. In dit PHP bestand kun je de geselecteerde keuze vinden in de $_POST waarbij je vervolgens een query op je database kunt uitvoeren op deze keuze en de juiste data te printen.

In mijn voorbeeld hier heb ik een formulier die POST naar het huidige bestand (moet dus wel .php zijn). Indien hij een $_POST ziet dan gaat hij proberen de waardes uit de DB te halen. Ik gebruik zelf niet echt veel PDO dus misschien heb ik een foutje in de query gemaakt maar volgens mij werkt hij wel :p

Middels de print_r kun je het result zien, en kun je hier verder op werken.
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
<!DOCTYPE html>
<html lang="nl">
<head>
<meta charset="utf-8">
<title>Tandemassen per woonplaats</title>
</head>
<body>
<h3>Tandemassen per woonplaats</h3>
Kies plaats:


<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" >
<select name="plaats">
<option value="1,2">Hilversum</option>
<option value="3">Haarlem</option>
<option value="4">Tilburg</option>
</select>

<input type="submit" value="vesturen">
</form>

<?php

if ($_SERVER['REQUEST_METHOD'] === 'POST') 
{   
    try 
    {
        $db = new PDO('mysql:host=localhost;dbname=Verhuur', 'root','');
    }
    catch(PDOException $e) 
    {
        echo $e->getMessage();
    }

    $statement = $db->prepare("SELECT * FROM Aanhanger WHERE Nummer = :nummer");
    $statement->bindParam(':nummer', $_POST['plaats'], PDO::PARAM_INT);
    $statement->execute();
    $result = $statement->fetch();

    echo '<pre>';
    print_r($result);
}

    
?>
</body>
</html>

[ Voor 3% gewijzigd door Douweegbertje op 21-12-2013 17:22 ]


Verwijderd

Topicstarter
Hey!
Super bedankt voor het reageren ^^
Misschien dat ik de code die je geeft verkeerd gebruik, maar ik krijg onderstaande op mijn scherm.
Ook moet ik niet doormiddel van een knop ''verstuur'' de gegevens krijgen, maar door alleen op de optie te drukken.

---------------------
Array
(
[Nummer] => 1
[0] => 1
[Tandemas] => 0
[1] => 0
[Huif] => 1
[2] => 1
[Kenteken] => 11-BBB-1
[3] => 11-BBB-1
[Naam] => Piet
[4] => Piet
[Adres] => Utrechtseweg 1
[5] => Utrechtseweg 1
[Woonplaats] => Hilversum
[6] => Hilversum
[Telefoon] => 0612345678
[7] => 0612345678
)
---------------------------

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 30-10 12:53

Douweegbertje

Wat kinderachtig.. godverdomme

Zou je niet eerst beginnen met het begin? Ik bedoel wat je wilt is heus wel mogelijk, maar op het moment dat je niet ziet wat je nu krijgt gaat het wel lastig worden. Je moet wel een beetje zelf gaan bekijken hoe dingen werken. Wat jij hebt is een print van een array van je PDO fetch. Aangezien we niets mee geven krijg je een array terug van:
[Return next row as an array indexed by both column name and number
Dus dat is prima, echter heb jij genoeg aan alleen de kolom naam, dus kun je ook gewoon even het volgende doen;

PHP:
1
$result = $statement->fetch(PDO::FETCH_ASSOC);



Maar je kunt gewoon de data eruit halen middels;

code:
1
2
$result['naam']
//etc..


Als je het meer dynamischer wilt maken heb je een aantal oplossingen. Misschien één van de betere is om het via ajax te doen: http://api.jquery.com/jQuery.ajax/ In feite maak je een POST met ajax naar een bestand waarbij je de waardes terug krijgt.

De andere oplossing is om de submit button weg te halen en dit te vervangen met wat javascript.

code:
1
<select name="plaats" onchange="form1.submit();">

[ Voor 4% gewijzigd door Douweegbertje op 21-12-2013 18:49 ]