PHP Keuzelijst uit database halen

  • Onderwerp starter Onderwerp starter Monte
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Monte

Gebruiker
Lid geworden
28 jul 2010
Berichten
49
Hallo allemaal,

Ik moet een pagina maken die een keuzelijst heeft dat men op een artikel nummer kan klikken en dat de daarbij behordende gegevens worden getoond.

het lukt mij alleen om alle gegevens in één keer te tonen

Groet Monte
 
Van wie "moet" je dit? Daarnaast, wat heb je zelf al gemaakt?
 
Hallo,

Ik moet dit doen voor school. ik ben een beginner met php enzo en zit eigenlijk gewoon vast. Had op Google al het e.e.a gezocht, ook wel gevonden maar kwam daar niet echt uit.

Mijn stukje PHP in de body
PHP:
<?php 
		$res = mysql_query("SELECT * FROM artikel");
			echo ("<table border=0 BORDERCOLOR=red><tr><td><b>Artikel Nummer</td></b><td><b>Omschrijving</td></b><td><b>Categorie</td></b><td><b>Prijs</td></b></tr>");
			while(list($artikelnr,$omsch,$cat,$prijs) = mysql_fetch_array($res))
			{	
				echo ("<tr><td>$artikelnr</td><td>$omsch</td><td>$cat</td><td>€ $prijs</td></tr>");
			}	
?>

Daaronder en stukje HTML

HTML:
<FORM METHOD="get" ACTION="">
<I>Artikelen</I><BR>
<BR>
<SELECT NAME="artikelen">
<OPTION> </OPTION>
</SELECT>
</FORM>
 
Helpmij is er niet voor je huiswerk dus verwacht geen kant-en-klare oplossingen ;)

Als je dit dynamisch wilt doen zul je je moeten verdiepen in AJAX, hiermee kun je data inladen onder dat de pagina ververst.
Wanneer dit geen vereiste is kun je eens kijken naar $_GET-variabelen en hoe je die in een query kunt gebruiken.

Wat je dan doet is zodra de dropdown wijzigt (onchange="" ;)) de gebruiker doorstuurt naar een URL met een $_GET-variabele die er voor kan zorgen dat je alleen informatie te zien krijgt welke betrekking heeft op het gekozen item (SQL: WHERE)
 
Nee dat verwacht ik ook totaal niet. Ik moet het zelf ook leren want op tentamens moet ik het uiteindelijk ook zelf doen. Maar als ik niks heb dan leert dat ook niet erg gemakkelijk.

En als je aan het formulier een submit button toevoegd? is het dan wel mogelijk om zonder ajax dit te doen?

bijvoorbeeld
HTML:
<INPUT TYPE="submit" NAME="verzend" VALUE="Ophalen">
 
dat kan ook.

je zult een formulier moeten maken indien je geen ajax wilt gebruiken daarnaast zal de pagina opnieuw moeten worden geladen om de gevraagde data te tonen.

Bij het gebruik van ajax is dit niet het geval maar zal gelijk de opgevraagde data worden getoond onder de selectie.

Van beide een voorbeeld gemaakt let op code is niet getest.:
ajax (je zal hier nog een verwerk bestand voor moeten maken waarin je de data ophaald.)
PHP:
<script type="text/javascript">
    $('#keuzelijst').change(function() {
        $('.pinfo').empty();
    
        $.get('link.php?id='+ $(this).('#keuelijst').val(), 
        function(data) {
            $('.pinfo').append(data); 
        });  
    });
</script>


<select id="keuzelijst">
    <?php while ($row = mysql_fetch_array($result)) : ?>
        <option value="<?php echo $ow['productid'];?>"><?php echo $row['productnaam']; ?></option>
    <?php endwhile; ?>
</select>

<div class="pinfo">    
</div>


indien je gebruik wilt maken van een submit knopje wordt het zoiets:
PHP:
<?php
//maak er altijd een getal van als het niet lukt wordt het een 0
$id = (int) $_POST['']
?>

<form action="index.php" method="post">
<select id="keuzelijst">
    <option>Selecteer...</option>
    <?php while ($row = mysql_fetch_array($result)) : ?>
        <option value="<?php echo $row['productid']; ?>"><?php echo $row['productnaam']; ?></option>
    <?php endwhile; ?>
        <button>Selecteer</button>
</select>
    
</form>
<?php
// hier doe je de query om de data van het product op te halen
if (!empty($id)){
$sql = "SELECT * FROM producten WHERE id='". $id ."'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
}
?>
<div class="pinfo">  
    hier toon je de data....
</div>

Verder zou ik je willen adviseren om gebruik te maken van PDO of mysqli.

Hier vind je er meer info over:
http://php.net/manual/en/book.pdo.php
http://nl3.php.net/manual/en/book.mysqli.php
 
Laatst bewerkt:
Heel erg bedankt!

Ik ga hier verder mee aan de slag. Zal ook je 2 links door nemen.

Groet
Monte!
 
Let wel: "klaaspeter" gebruikt jQuery voor het AJAX gedeelte.
Het javascript gedeelte werkt dus niet zonder dat je deze library toevoegt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan