Nieuwe data controleren met AJAX
ik heb een dataentry site gemaakt, waar ik adressen kan invoeren.
Ik een check gemaakt met AJAX dat als het postcode/huisnummer is ingevoerd er er 2 regels extra bij komen dat deze al bestaat en uit een andere tabel welk adres en plaats bij het postcode/huisnummer combinatie hoort.
Dit werkt perfect met de data die al ingevoerd is van voordat de browser is opgestart.
Met de nieuwe data:
Als ik een postcode/huisnummer invoer en opsla en dit zelfde postcode/huisnummer weer ga invoeren dan krijg ik de melding niet te zien, maar wel uit de andere tabel welk adres en plaats er bij hoort.
Vul ik daarna een postcode van bijvoorbeeld gister in dan krijg ik wel te zien dat deze bestaat.
Moet ik dan iets bij de AJAX-functie resetten?
javacode:
Code (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
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
function Inint_AJAX()
{try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {}
try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {}
try { return new XMLHttpRequest(); } catch(e) {}
alert("XMLHttpRequest not supported");
return null;
}
function GetAW(check, tabelnaam)
{var Postcode = document.addform.Postcode.value.toUpperCase();
var Huisnummer = document.addform.Huisnummer.value;
var PostcodeRE = /^([0-9]{4}[A-Z]{2})$/;
var HuisnummerRE = /[\D]/g;
if (Postcode !== '' && Huisnummer !== '')
{var Reeksindicatie = 0;
var veld = 'aw';
GetData = true;
if (!PostcodeRE.exec(Postcode))
GetData = false;
if (!HuisnummerRE.exec(Huisnummer))
{if (Huisnummer.length < 1 || Huisnummer.length > 5)
{GetData = false;}
}
if (GetData == true)
{var req = Inint_AJAX();
req.onreadystatechange = function ()
{if (req.readyState==4)
{if (req.status==200)
{document.getElementById(veld).innerHTML = req.responseText;}
}
}
if (check == 0)
req.open("GET", "getaw.php?pc=" + Postcode + "&hnr=" + Huisnummer + "&ri=" + Reeksindicatie);
else if (check == 1)
req.open("GET", "getaw.php?pc=" + Postcode + "&hnr=" + Huisnummer + "&ri=" + Reeksindicatie + '&chk=' + check + '&tblnm=' + tabelnaam);
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
req.send(null);
}
}
}
{try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {}
try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {}
try { return new XMLHttpRequest(); } catch(e) {}
alert("XMLHttpRequest not supported");
return null;
}
function GetAW(check, tabelnaam)
{var Postcode = document.addform.Postcode.value.toUpperCase();
var Huisnummer = document.addform.Huisnummer.value;
var PostcodeRE = /^([0-9]{4}[A-Z]{2})$/;
var HuisnummerRE = /[\D]/g;
if (Postcode !== '' && Huisnummer !== '')
{var Reeksindicatie = 0;
var veld = 'aw';
GetData = true;
if (!PostcodeRE.exec(Postcode))
GetData = false;
if (!HuisnummerRE.exec(Huisnummer))
{if (Huisnummer.length < 1 || Huisnummer.length > 5)
{GetData = false;}
}
if (GetData == true)
{var req = Inint_AJAX();
req.onreadystatechange = function ()
{if (req.readyState==4)
{if (req.status==200)
{document.getElementById(veld).innerHTML = req.responseText;}
}
}
if (check == 0)
req.open("GET", "getaw.php?pc=" + Postcode + "&hnr=" + Huisnummer + "&ri=" + Reeksindicatie);
else if (check == 1)
req.open("GET", "getaw.php?pc=" + Postcode + "&hnr=" + Huisnummer + "&ri=" + Reeksindicatie + '&chk=' + check + '&tblnm=' + tabelnaam);
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
req.send(null);
}
}
}
Code (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
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
<?php
require("connect.inc.php");
require("functions.php");
$Check = $_GET['chk'];
$Tabelnaam = $_GET['tblnm'];
$Postcode = $_GET['pc'];
$Huisnummer = $_GET['hnr'];
if (isEven($Huisnummer))
$ReeksIndicatie = 1;
else
$ReeksIndicatie = 0;
$CheckPlaatsStraat = "";
$Straat = "";
$Plaats = "";
if (!$connectie = mysql_connect($dbserver,$dbgebruikersnaam,$dbwachtwoord))
{echo "Er kan helaas geen verbinding gemaakt worden met de server\r\n";}
else
{if (!mysql_select_db($database,$connectie))
{echo "Er is verbinding met de server maar kan geen connectie maken met de database\r\n";}
else
{$SQL = "SELECT * FROM pcdata WHERE Postcode = '" . $Postcode . "' AND Huisnrvan <= " . $Huisnummer . " AND Huisnrtot >= " . $Huisnummer . " AND ReeksIndicatie = " . $ReeksIndicatie;
$SQLAW = mysql_query($SQL, $connectie);
$AantalAW = mysql_num_rows($SQLAW);
if ($AantalAW == 1)
{$DBStraat = ucwords(strtolower(trim(mysql_result($SQLAW,0,"Straatnaam"))));
$DBPlaats = strtoupper(trim(mysql_result($SQLAW,0,"Plaats")));
echo "<br>" . $DBStraat . " - " . $DBPlaats;
}
else
{echo "<br>";
echo "Straat " . $CheckPlaatsStraat . " : <input size=\"30\" name=\"Straat\" value=\"" . $Straat . "\"><br>\r\n";
echo "Plaats " . $CheckPlaatsStraat . ": <input size=\"30\" name=\"Plaats\" value=\"" . $Plaats . "\"><br>\r\n";
}
mysql_free_result($SQLAW);
if (isset($Check))
{$SQL = "SELECT Count(MMID) Aantal FROM " . $Tabelnaam . " WHERE Postcode = '" . substr($Postcode,0,4) . " " . substr($Postcode,4,2) . "' AND Huisnummer = " . $Huisnummer;
if ($SQLAW = mysql_query($SQL, $connectie))
{if (mysql_result($SQLAW,0,"Aantal") > 0)
{echo "<br><font color=\"red\">Het ingevoerde adres bestaat al</font>";}
mysql_free_result($SQLAW);
}
} // isset Check
}
}
?>
require("connect.inc.php");
require("functions.php");
$Check = $_GET['chk'];
$Tabelnaam = $_GET['tblnm'];
$Postcode = $_GET['pc'];
$Huisnummer = $_GET['hnr'];
if (isEven($Huisnummer))
$ReeksIndicatie = 1;
else
$ReeksIndicatie = 0;
$CheckPlaatsStraat = "";
$Straat = "";
$Plaats = "";
if (!$connectie = mysql_connect($dbserver,$dbgebruikersnaam,$dbwachtwoord))
{echo "Er kan helaas geen verbinding gemaakt worden met de server\r\n";}
else
{if (!mysql_select_db($database,$connectie))
{echo "Er is verbinding met de server maar kan geen connectie maken met de database\r\n";}
else
{$SQL = "SELECT * FROM pcdata WHERE Postcode = '" . $Postcode . "' AND Huisnrvan <= " . $Huisnummer . " AND Huisnrtot >= " . $Huisnummer . " AND ReeksIndicatie = " . $ReeksIndicatie;
$SQLAW = mysql_query($SQL, $connectie);
$AantalAW = mysql_num_rows($SQLAW);
if ($AantalAW == 1)
{$DBStraat = ucwords(strtolower(trim(mysql_result($SQLAW,0,"Straatnaam"))));
$DBPlaats = strtoupper(trim(mysql_result($SQLAW,0,"Plaats")));
echo "<br>" . $DBStraat . " - " . $DBPlaats;
}
else
{echo "<br>";
echo "Straat " . $CheckPlaatsStraat . " : <input size=\"30\" name=\"Straat\" value=\"" . $Straat . "\"><br>\r\n";
echo "Plaats " . $CheckPlaatsStraat . ": <input size=\"30\" name=\"Plaats\" value=\"" . $Plaats . "\"><br>\r\n";
}
mysql_free_result($SQLAW);
if (isset($Check))
{$SQL = "SELECT Count(MMID) Aantal FROM " . $Tabelnaam . " WHERE Postcode = '" . substr($Postcode,0,4) . " " . substr($Postcode,4,2) . "' AND Huisnummer = " . $Huisnummer;
if ($SQLAW = mysql_query($SQL, $connectie))
{if (mysql_result($SQLAW,0,"Aantal") > 0)
{echo "<br><font color=\"red\">Het ingevoerde adres bestaat al</font>";}
mysql_free_result($SQLAW);
}
} // isset Check
}
}
?>
ik gebruik in de inputbox bij onchange: GetAW(1,'Tabelnaam');
Vast bedankt voor de reacties
Gewijzigd op 01/01/1970 01:00:00 door Sander IT
in de req.open('GET' ....
de datum meegeven (unique waarde)
dat IE het als een nieuwe aanvraag ziet.
Gewijzigd op 01/01/1970 01:00:00 door Sander IT