probleem met dropdown menu en oproepen van info uit de db

Pagina: 1
Acties:
  • 80 views sinds 30-01-2008

  • DJohn001
  • Registratie: December 2005
  • Laatst online: 02-01-2025
een maat en ik hebben voor een school project een websiteje gemaakt voor een inventarisatie van computers bij klanten. nu hebben we 2 pagina's gemaakt 1 om de gegevens van de klant in te voeren adres enzo in het vervolg "klantpage" en 1 om een pc in te voeren in het vervolg "pcpage" (1 klant kan nutuurlijk meerdere pc's hebben). om de pc's aan de gegevens van de klant te koppelen hebben we op de pcpage een dropdown menu gemaakt met het klant_id als valeu en de klantnaam is zicht baar in het dropdown menu. tot hier werkt alles!!

maar nu willen ze graag dat als je een klantnaam kiest in het dropdown menu (bijv. DJohn) dat je dan de aders gegevens die je op de klantpage hebt ingevoert naast het dropdown menu komt te staan. ik heb bij een paar mensen gevaagt hoe je dit kunt doen zei zijden met: xmlhttprequest. nou is het eenige probleem in heb heel weinig zeg maar geen verstand van javascript en al helemaal niet van xmlhttprequest. ik heb de heleweek al gezocht naar een dergelijk script maar kon niets bruikbaars vinden behalve hoe je er voor zorgd dat elke browser het goeie script krijgt.

kan iemand van jullie mij misschien een end opweg helpen??? bvd.

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022

Reveller

Hopla!

Een kant-en-klaar script wat doet wat jij zoekt, zul je niet vinden. Maar aan deze pagina heb ik een hoop gehad - het legt goed uit hoe het httprequest werkt: http://jibbering.com/2002/4/httprequest.html :)

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • DJohn001
  • Registratie: December 2005
  • Laatst online: 02-01-2025
heey bedankt ik heb in middels wat gevonden!

  • DJohn001
  • Registratie: December 2005
  • Laatst online: 02-01-2025
ik heb van iemand dit script gekregen.

code:
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<head>
<script type="text/javascript">
var handler = null; // een lege variabele aanmaken, die door het hele script heen te bereiken is.

window.onload = function(){
/*dit is een alternatieve manier om events te koppelen, maar het is de meest korte schrijfwijze. Zodra het window-object dus geladen is, wordt de functie die ik er aan koppel uitgevoerd.*/
   var selectbox = document.getElementById('persoon');
/*Via getElementById kan je snel een element uit de pagina pakken, echt een aanrader! */
   addEvent(selectbox, 'change', requestExtraInformatie);
/*Ik vul nu de onchange-trigger (ook wel bekend als onchange="functiehier") in van het element wat ik aan de variabele selectbox heb gekoppeld, immers het select-element met id="persoon". */
  handler = createHTTPHandler();//een xmlhttp handler aanmaken en toewijzen aan de variabele handler, die ik eerder heb aangemaakt. (variabele aanmaken doe je door er 'var' voor te zetten.)
}

/*Nu een functie maken om de aanvraag om extra informatie uit te voeren */
function requestExtraInformatie(){
   var selectbox = document.getElementById('persoon'); //weer de select-box selecteren
   var persoon = selectbox.options[selectbox.selectedIndex].value; //de waarde van de momenteel geselecteerde optie in je selectbox bepalen.
   handler.open('GET', 'extra.php?id='+persoon, true);// ?id was ?persoon instellen dat we een makkelijke aanvraag (GET) uitvoeren en vragen naar de pagina extra.php, waarbij we als parameter persoon met de waarde van de momenteel geselecteerde persoon meegeven. 
   handler.onreadystatechange = handleExtraInformatie; //aan het onreadystatechange-event vertellen dat waneer dat gebeurt, hij handleExtraInformatie uit gaat voeren.
   handler.send(null); //de aanvraag uitvoeren, zie het als een formulier dat je zojuist hebt ingevoerd, en nu op de submit-knop drukt.
}

function handleExtraInformatie(){
   if(handler.readyState == 4) //handler hebben we gemaakt in de top van het script, toegewezen bij het laden van de pagina, een aanvraag laten uitvoeren in requestExtraInformation en nu gaan we kijken of hij daar al klaar mee is. Pas als hij klaar is kunnen we de data eruit halen.
   {
      var informatievenster = document.getElementById('informatie');//het element in de pagina met het id="informatie" selecteren en toewijzen aan  de variabele informatievenster.
      informatievenster.innerHTML = handler.responseText; //Alles wat in het informatie-element zit wordt nu vervangen door de inhoud, het antwoord dat je aanvraag van de server heeft gekregen vervangen.
   }
}

//en klaar ben je.
</script>
</head>
<body>
   <select id="persoon">
      <option value="1">Persoon 1</option>
      <option value="2">Persoon 2</option>
   </select>
   <p id="informatie"></p>
</body>
</html>


nu werkt deze code niet zoals het moet ik heb er al van alles mee geprobeert maar omdat ik eigenlijk geen kennis het van DOM/javascript kom ik er toch niet op eigen kracht uit. Ik krijg de volgende meldingen van FF javascript console onder andere:
  • addEvent is not defined in line 14
  • hendler has no properties in line 23
ik hoop dat jullie er meer van snappen :*)


ik post hier nog even het php wat ik in wat in de parafraaf onder het dropdown menu komt
code:
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
<?php
$db = mysql_connect("localhost","","")
    or die("kan geen verbinding maken met de sql-server." .mysql_error());
    mysql_select_db("hoi");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<?php
$sql = mysql_query("SELECT * FROM klanten WHERE id LIKE ".$_GET['persoon']." ");
    while ($x = mysql_fetch_object($sql)){
        $voornaam=$x->voornaam;
        $achtenaam=$x->achternaam;
        $adres=$x->adres;
        $postcode=$x->postcode;
        $plaats=$x->plaats;
        $telefoon=$x->telefoon;
        $mobiel=$x->mobiel;
        }
?>
<table>
    <tr>
        <td>voornaam: <? echo "$voornaam"; ?></td><td>achternaam: <? echo "$achternaam"; ?></td>
    </tr>
    <tr>
        <td>adres: <? echo "$adres"; ?></td><td>postcode: <? echo "$postcode"; ?></td>
    </tr>
    <tr>
        <td>woonplaats: <? echo "$plaats"; ?></td><td>telefoonnr: <? echo "$telefoon"; ?></td>
    </tr>
    <tr>
        <td>mobiel: <? echo "$mobiel"; ?></td>
    </tr>
</table>
</body>
</html>



alvast bedankt voor de reacties

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Je kan 's op zoek gaan naar Event Handlers, zo gebruikt IE attachEvent en addEventHandler. Ik denk dat de bedoeling van je school met deze opdracht is dat je er iets van leert. Daarom wat termen waar je op kan zoeken:

xmlhttprequest
ajax
attachEvent en addEventHandler

Je kan ook op zoek gaan naar een tutorial zoals deze.

  • DJohn001
  • Registratie: December 2005
  • Laatst online: 02-01-2025
heey ik heb naar lang zoeken en prutsen toch heteen goed eind resultaat gevonden op
http://www.w3schools.com/...me=try_xmlhttprequest_js1

duzz maar bedankt voor de reacties die hebben zeker ook geholpen

  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 25-03 10:55

XangadiX

trepanatie is zóó kinderachtig

Hoi, welkom op GoT,

Dit is dus niet zoals we zaken doen hier in W&G; je topic start is warrig en zelfs voor een dyslect als ik staan er tranentrekkend veel spelfouten in. Voorts leg je niet goed je probleem uit en kom je nota bene in de loop van het topic met een eigen oplossing (waar overigens de nodige kanttekeningen bij gezet kunnen worden)

Al met al moet je dus zorgen de volgende keer dat je de Faq door hebt gelezen, je EERST zelf wat zoekt en probeert en dan pas hier een net geformuleerde en helder uiteen gezette vraag komt stellen

Stoer; Marduq

Pagina: 1

Dit topic is gesloten.