Nieuwe data controleren met AJAX

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sander IT

Sander IT

13/05/2009 16:18:00
Quote Anchor link
Hoi,

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)
PHP script in nieuw venster Selecteer het PHP script
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
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);
        }
     }
  }


Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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
       }
    }

?>


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
 
PHP hulp

PHP hulp

23/12/2024 04:52:04
 
Sander IT

Sander IT

04/07/2009 17:28:00
Quote Anchor link
Op gelost,

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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.