[PHP/MYSQL] Waarde controleren zonder te posten

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op een invoerformulier worden een aantal gegevens ingevoerd, waaronder de postcode.

Deze postcode is erg belangrijk in het geheel omdat daarvan een aantal gegevens worden afgeleid. Iemand kan alleen worden ingevoerd als de postcode reeds in de postcodetabel voorkomt.

Wat ik wil doen is het volgende:

Zodra het veld postcode is ingevoerd en de gebruiker naar het volgende veld gaat wil ik dat de invoer gecontroleerd wordt. Dwz: bestaat de rij in de postcodetabel. Als dat niet het geval is moet er een pop-up verschijnen met daarin de mogelijkheid om de postcode in te voeren. Vervolgens kan de gebruiker de overige gegevens invoeren en opslaan.

Iemand suggesties?

Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

uuuh maak een hidden iframe, of een xml object aan waarin je gegevnes met de server uitwisselt?

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

Verwijderd

Form maken, met als action 'PHP_SELF', en dan een PHP scriptje dat checkt, en eventueel met een 'if/else' doorstuurt naar de volgende pagina?

Acties:
  • 0 Henk 'm!

Verwijderd

Bij het genereren van de pagina bouw je een javascriptje op waarin je de hele lijst van postcodes in een javascript array zet.

Bij het invoeren van het volgende veld kun je dan simpel dmv javascript checken of de betreffende waarde in die array staat, of niet...

En dan heb je dus ook geen reload nodig.

[ Voor 8% gewijzigd door Verwijderd op 22-06-2003 15:23 ]


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Dat is erg ranzig Markuz, Javascriptjes met arrays met 1000-10000 waarden. *puke*

wat JSS zegt werkt redelijk goed. Gewoon doorsturen naar de volgende page (Of zichzelf), en dan checken of die postcode bestaat, gewoon met MySQL, 1 rijtje checken, niet duizenden ophalen dus. Dan aan de hand van je MySQL return waarde het volgende formulier bouwen. (Dus of de postcode-invoer zooi, of gewoon de volgende page).

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

Verwijderd

Grijze Vos schreef op 22 juni 2003 @ 19:22:
Dat is erg ranzig Markuz, Javascriptjes met arrays met 1000-10000 waarden. *puke*

wat JSS zegt werkt redelijk goed. Gewoon doorsturen naar de volgende page (Of zichzelf), en dan checken of die postcode bestaat, gewoon met MySQL, 1 rijtje checken, niet duizenden ophalen dus. Dan aan de hand van je MySQL return waarde het volgende formulier bouwen. (Dus of de postcode-invoer zooi, of gewoon de volgende page).
Idd, met Javascript genereert veel te veel data. Opzich kan je het zo doen:
code:
1
mysql_query("SELECT * FROM postcodes WHERE postcode = '$postcode")

En dan zorgen dat als deze query een result teruggeeft, het form verder gaat, en anders een error komt.

[ Voor 4% gewijzigd door Verwijderd op 22-06-2003 19:28 ]


Acties:
  • 0 Henk 'm!

  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09 14:42
Verwijderd schreef op 22 June 2003 @ 19:28:
[...]

Idd, met Javascript genereert veel te veel data. Opzich kan je het zo doen:
code:
1
mysql_query("SELECT * FROM postcodes WHERE postcode = '$postcode")

En dan zorgen dat als deze query een result teruggeeft, het form verder gaat, en anders een error komt.
Hiervoor moet de gebruiker dus eerst submitten en dat is geen pre :)

Wel is het de beste methode aangezien je dan als de postcode niet klopt je de andere velden die wel ingevuld waren gewoon ingevuld kan laten :)

Acties:
  • 0 Henk 'm!

  • KolNedra
  • Registratie: September 2001
  • Laatst online: 18-04-2020

KolNedra

...

Zodra (via javascript) duidelijk is gemaakt dat je van veld bent veranderd / andere focus, en de waarde van je POSTCODE input een lengte heeft van 6 karakters (waarvan er 4 letters zijn en 2 cijfers) Moet je zorgen dat javascript een locatie veranderd van een <iframe>

Dus
JavaScript:
1
open("check_postcode.php?postcode="+document.gegevens.postcode.value,"checkFrame");


En dan check_postcode.php moet je die mysql_query in verwerken en dat zo oplossen dat je een "Alert()" krijgt als die postcode fout is (o.i.d)

::: flickr.com/kolnedra ::: Nikon D80 + Sigma 18-200mm f/3.5-6.3 DC + Sigma 10-20mm f/4-5.6 EX DC HSM


Acties:
  • 0 Henk 'm!

Verwijderd

Grijze Vos schreef op 22 June 2003 @ 19:22:
Dat is erg ranzig Markuz, Javascriptjes met arrays met 1000-10000 waarden. *puke*
Ik zie anders van jou geen (betere) manier om het wél te kunnen doen zónder reload...

Beetje gemakkelijk om het zo te doen, niet?

Acties:
  • 0 Henk 'm!

  • djexplo
  • Registratie: Oktober 2000
  • Laatst online: 07-07 15:40
KolNedra schreef op 22 June 2003 @ 19:54:
Zodra (via javascript) duidelijk is gemaakt dat je van veld bent veranderd / andere focus, en de waarde van je POSTCODE input een lengte heeft van 6 karakters (waarvan er 4 letters zijn en 2 cijfers) Moet je zorgen dat javascript een locatie veranderd van een <iframe>

Dus
JavaScript:
1
open("check_postcode.php?postcode="+document.gegevens.postcode.value,"checkFrame");


En dan check_postcode.php moet je die mysql_query in verwerken en dat zo oplossen dat je een "Alert()" krijgt als die postcode fout is (o.i.d)
Yep dit is de oplossing :) , Als de postcode ingevuld is gewoon reload van klein (ontzichtbaar) iframpje doen en dan de postcode meegeven dus dan locatie iframe: checkpostcode.php?posctode=1234AB en dan alert gebruiken om aan te geven dat postcode fout is.
Controleren van invoervakje kan je doen met timer functie en dan functie openen die lengte postcode controleert en al dan niet het iframe reload. en daarna de timer reset.

[ Voor 12% gewijzigd door djexplo op 23-06-2003 19:14 ]

'if it looks like a duck, walks like a duck and quacks like a duck it's probably a duck'


Acties:
  • 0 Henk 'm!

  • Anders
  • Registratie: December 2000
  • Laatst online: 13-09 18:52
Inderdaad, een hidden iframe of hidden frame werkt prima. Zie http://www.arendmotors.nl/occasions_frameset.html voor een - m.i. leuke - toepassing hiervan.

Ik spoor veilig of ik spoor niet.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Met de IFRAMES is het idd gelukt.

In de <HEAD> van gebruikers.php:

code:
1
2
3
4
5
6
7
8
<script language="JavaScript">
function CheckPostcode() 
{ if (document.Nieuwegebruiker.postcode.value.length=7)  {

document.all.ipostcode.src="postcode.php?functie=controleer&postcode="
+document.Nieuwegebruiker.postcode.value
+"&huisnummer="+document.Nieuwegebruiker.huisnummer.value; } }
</script>


Een OnChange -event in de textbox van huisnummer

code:
1
2
<INPUT CLASS=TEXTBOX SIZE=4 TYPE=text NAME=huisnummer 
VALUE='$huisnummer' OnChange=CheckPostcode()>


In de source van het Iframe wordt de functie controleer van het script postcode.php aangeroepen. In deze functie wordt de pop-up geopend.

code:
1
2
3
4
5
6
7
8
9
10
11
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function popUp() {
props=window.open('<?PHP echo "postcode.php?functie=nieuw&module=gebruikers.php&postcode=$linkpostcode"; ?>
', 'poppage', 'toolbars=0, scrollbars=0, location=0, statusbars=0, menubars=0, resizable=0, 
width=300, height=500, left = 362, top = 184');
}
// End -->
</script>
</HEAD>
<BODY onLoad="javascript:popUp()">


bedankt voor de tips! _/-\o_ :7

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 18-09 16:51
Als je wilt kun je dit ook nog zonder popup doen. Dan maak je een lege div aan in het hoofdbestand, dus met het formulier en dan zet je in de source van het controlebestand een onload event waarin je de inhoud van het element (div) veranderd.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ok, maar het was juist de bedoeling om een pop-up te creeeren :)
Pagina: 1