login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Formulier controle (met database)

Offline Appie_Dijk - 27/04/2010 10:33
Avatar van Appie_DijkLid Hallo iedereen,

Ik wist even geen betere titel maar het volgende...

Ik heb een database met de volgende tabellen:

relaties
- ID
- voornaam
- achternaam
- actief
contactgegevens
- ID
- relatieID
- soortnummer
- telefoonnummer
- actief
adresgegevens
- ID
- relatieID
- soortadres
- adres
- postcode
- plaats
- actief

Nu wil ik een pagina om een nieuw persoon toe te voegen in de database (opzich geen probleem) maar nu wil ik als ik de achternaam invul dat er direct wordt gekeken of er nog meer mensen in de database staan met deze achternaam.

Als dit het geval is moet er iets van een uitroepteken achter het veld 'achternaam' komen.

Als ik daar dan op klik moet er een nieuw venster (cq. pop-up) tevoorschijn komen met de desbetreffende relaties uit de database. Tevens moet er achter elke relatie een knop komen 'kies relatie'.

Als ik dan op kies klik moeten de overige gegevens gekopieerd worden naar de overige velden van het formulier wat ik zojuist noemde.

Ik denk ook dat er 2 verborgen velden moeten komen met daarin de waarde of het dan gaat om een nieuwe relatie of een bestaande relatie uit de database (en indien het een bestaande is, in het 2e verborgen veld het ID nummer van de relatie).

Ik vraag me af hoe ik dit het best aan kan pakken? kan dit met allen PHP & SQL of moet ik hier bijv. ook javascript bij gebruiken?

Alvast bedankt voor jullie reacties.

Mvg. Albert

6 antwoorden

Gesponsorde links
Offline vinTage - 27/04/2010 10:42
Avatar van vinTage Nieuw lid Als dat uitroepteken tijdens het invoeren te zien moet zijn, dan kan je dit eens bekijken.
Offline Appie_Dijk - 27/04/2010 10:45
Avatar van Appie_Dijk Lid ja dat heb ik al eens bekeken... het is alleen niet zo dat hij alleen dat ene veld moet aanvullen maar dat hij zodra het ook werkelijk dezelfde relatie is alle gegevens overneemt (zodra wij op de knop 'kies relatie' klikken).
Offline vinTage - 27/04/2010 10:49
Avatar van vinTage Nieuw lid Ik heb onlangs hetzelfde gemaakt, en wat ik dus deed was in een keyup in het txtveld een query maken met like 'invoer%'
Als er >3 chars waren ingegeven

Als er iets matched dan gewoon een lijstje met suggesties tonen. (die ook weer aanklikbaar waren om de rest te "populaten"
Offline Appie_Dijk - 27/04/2010 10:51
Avatar van Appie_Dijk Lid zou je mij een voorbeeld willen sturen? van jou script... mogelijk dat ik er dan wat wijzer van wordt...
Offline vinTage - 27/04/2010 11:22
Avatar van vinTage Nieuw lid Code is niet zo nice, want ik ben hier een eeuw geleden aan begonnen en heb het nog niet klaar (jQuery).
Maar zo heb je iig een idee hoe ik het deed.

Deze functie roep ik aan in een keyup event:
  1. function suggestie(wie){
  2. $.ajax({
  3. type: "POST",
  4. url: "suggestie.php",
  5. data: "naam="+wie,
  6. success: function(msg){
  7. if(msg.length > 5)
  8. {
  9. $("#suggestie").html(msg);
  10. }
  11. else
  12. {
  13. $("#suggestie").html('');
  14. }
  15. }
  16. });
  17. }


suggestie.php
  1. <?php
  2. $q = mysql_query("select * from papierwinkel where voornaam like '".mysql_real_escape_string($_POST['naam'])."%' or achternaam like '".mysql_real_escape_string($_POST['naam'])."%' limit 1") or die(mysql_error());
  3. if(mysql_num_rows($q) > 0)
  4. {
  5. echo '<b>suggestie: </b>';
  6. while ($r = mysql_fetch_array($q))
  7. {
  8. ?>
  9. <a href="#" onclick="gebruikSuggestie('vn=<?php echo htmlentities($r['voornaam'])?>~.|.~an=<?php echo htmlentities($r['achternaam'])?>~.|.~str=<?php echo htmlentities($r['straat'])?>~.|.~hn=<?php echo htmlentities($r['huisnr'])?>~.|.~pc=<?php echo htmlentities($r['postcode'])?>~.|.~pl=<?php echo htmlentities($r['plaats'])?>~.|.~t1=<?php echo htmlentities($r['tel1'])?>~.|.~btwnr=<?php echo htmlentities($r['btwnummer'])?>')" title="gebruik deze contactgegevens"><?php echo htmlentities($r['voornaam'].' '. $r['achternaam'])?></a><br />
  10. <?php
  11. }
  12. }
  13. ?>


En het form populaten


  1. function gebruikSuggestie(wie)
  2. {
  3. var pers = wie.split("~.|.~");
  4. for(i=0; i<pers.length;i++)
  5. {
  6. var geg = pers[i].split("=")
  7. $('#'+geg[0]).val(geg[1]);
  8. }
  9. $("#suggestie").html('');
  10. }


het form
  1. <form action="<?php echo $_SERVER['REQUEST_URI'];?>" method="post">
  2. <div id="suggestie"></div>
  3. <label for="vn">Voornaam</label><input name="voornaam" type="text" id="vn" onkeyup="suggestie(this.value)" /><br />
  4. <label for="an">Achternaam</label><input name="achternaam" type="text" id="an" onkeyup="suggestie(this.value)" /><br />
  5. <label for="str">Straat</label><input name="straat" type="text" id="str" /><br />
  6. <label for="hn">huisnr</label><input name="huisnr" type="text" id="hn" /><br />
  7. <label for="pc">Postcode</label><input name="postcode" type="text" id="pc" /><br />
  8. <label for="pl">Plaats</label><input name="plaats" type="text" id="pl" /><br />
  9. <label for="t1">Telefoon 1</label><input name="tel1" type="text" id="t1" /><br />
  10. <label for="btwnr">btw nummer</label><input name="btwnr" type="text" id="btwnr" />
Offline Appie_Dijk - 27/04/2010 14:36
Avatar van Appie_Dijk Lid Ik ga er op korte termijn eens verder in verdiepen, bedankt voor bovenstaand script... mogelijk kan ik hiermee uit de voeten!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.208s