Beste allemaal,

Wie heeft of kent een goed werkend stratenherkenninsscript dat ik kan gebruiken voor mijn agenda om taxiritten in te voeren.

IK deel online een agenda met 4 collega's en wij voeren met z'n allen veel reserveringen in.
Dit vergt in de regel allemaal veel tijd en niet iedereen voert de straatnamen soms goed in.
Ik ben op zoek naar een soort systeem dat wanneer ik bijvoorbeeld bij het invoerveld "adres" de letter D invul, ik automatisch kan kiezen uit een lijst met alle straten in Zaanstad beginnende met een D.
Vul ik Do in, dat dan de mogelijkheden automatisch minder worden en het systeem alle straten laat zien beginnende met Do, om vervolgens uit de lijst die verschijnt, Dorpsstraat te kunnen selecteren en dat dat dan in het veld adres terecht komt.
Ik stel me zo voor dat ik in de database en paar tabellen erbij moet maken, en daar alle straten van Zaanstad moet invoeren.
Nu is het geval dat Zaanstad bestaat uit een aantal samengevoegde gemeenten en dat de Dorpstraat dus wel 3 keer voor kan komen.
Ik stel me zo voor dat ik dan een aparte tabel per deelgemeente moet maken enz enz.

Is er iemand van jullie dat ooit eens zo'n script ontwikkelt heeft, kent, of wil helpen(heel veel wil helpen om dit te realiseren.

mvg

Peter Arendse
Ik weet het Jan, maar er wordt gelukkig veel gebruik van gemaakt, zowel particulier als zakelijk.
Maar jou sugestie neem ik natuurlijk ten harte en zal na dit project er zeker aandacht aan gaan besteden, maar door bepaalde reden is dat er niet van gekomen.

Maar.... ik heb er nooit bij na gedacht dat ik niet alleen een adres heb van van vertrek, maar ook een bestemming!
Is het mogelijk met een aanpassing in het script dat ik de db voor twee aparte invoervelden kan gebruiken?
Dus voor vertrek adres een bestennings adres?

Beste Blanche,
Ik wil niet bumpen, maar geloof dat mijn vorige bericht niet is aangekomen.
Is het mogelijk om dit script wat we ontwikkeld hebben voor meerder invoervelden te gebruiken, en hoe?
Ik heb natuurlijk een veld "van adres" en een veld "bestemming".
Bumpen is toegestaan na 24 uur, dus je doet niets verkeerd ;-)

Maar natuurlijk is het mogelijk om dit script voor twee input velden te gebruiken. Aan dat tweede veld zou je hetzelfde event kunnen hangen. Wat je dan waarschijnlijk wel moet doen is wat kleine aanpassingen in het script maken, zodat de juiste namen bij het juiste veld komen te staan.

Hoe ziet je code er nu uit?

<?php
include("db_werk.php");
if (isset ($_GET['straat'])) {
    mysql_connect($dbhost,$dbuser,$dbpass) or die(mysql_error());
    mysql_select_db($db) or die(mysql_error());
  $sql = "
    SELECT
        s.straat,
        g.gemeente
    FROM
        straten AS s,
        gemeenten AS g,
        straten_gemeenten AS sg
    WHERE
        g.id = sg.gemeente_id
    AND
        sg.straat_id = s.id
    AND
        s.straat LIKE '".mysql_real_escape_string($_GET['straat'])."%'
";
    if ($res = mysql_query ($sql)) 
    {
        if (mysql_num_rows ($res) > 0) 
        {
            while ($row = mysql_fetch_assoc ($res)) 
            {
               
			   echo '<p onclick="document.getElementById (\'straat\').value = this.innerHTML; document.getElementById (\'lijst\').innerHTML = \'\'">'.$row['straat'].' ('.$row['gemeente'].')</p>';
            }
        }
        else
        {
            echo 'Geen straatnamen gevonden die overeenkomen met de databese gegevens ';
        }
    }
    else
    {
        trigger_error(mysql_error().'<br />In query: '.$sql);
    }
}
?> 


Dit is het script tot zover.
IK heb hem in mijn invoerscript geplaats en het werkt okay.
En dit is de ajax code


 <script type="text/javascript">
    function ajaxFunction ()
    {
        var xmlHttp;
        var lijst = document.getElementById ('lijst');

        try
        {
            // Firefox, Opera 8.0+, Safari
            xmlHttp=new XMLHttpRequest ();
        }
        catch (e)
        {
            // Internet Explorer
            try
            {
            xmlHttp=new ActiveXObject ("Msxml2.XMLHTTP");
            }
            catch (e)
            {
                try
                {
                xmlHttp=new ActiveXObject ("Microsoft.XMLHTTP");
                }
                catch (e)
                {
                alert ("Your browser does not support AJAX!");
                return false;
                }
            }
        }
        xmlHttp.onreadystatechange=function ()
        {
        if (xmlHttp.readyState == 4)
        {
            lijst.display = '';
            lijst.innerHTML = xmlHttp.responseText;
        }
        }
        var get = document.getElementById ('straat').value;
        if (get.length > 0) {
            xmlHttp.open ("GET", "ajax_straatnamen.php?straat=" + get, true);
            xmlHttp.send (null);
        }
        else {
            lijst.display = 'none';
            lijst.innerHTML = '';
        }
    }
    </script>


En zo staat hij in mijn script:
<input id="straat" name="van" type="text" onkeyup="ajaxFunction ();" size= "50">
<?php
echo '<p onclick="document.getElementById (\'straat\').value = this.innerHTML; document.getElementById (\'lijst\').innerHTML = \'\'">'.$row['straat'].' ('.$row['gemeente'].')</p>';
?>
Dit is de regel die je waarschijnlijk aan wilt passen. Afhankelijk van met welk inputveld de functie aangeroepen is, wil je namelijk het onclick attribuut aanpassen. De straatnaam moet immers wel in het juiste veld komen te staan.

Wat je zou kunnen doen is een extra GET variabele meegeven aan de url, waarin je het id van het betreffende inputveld aangeeft.
Mmmmm, sorry Blanche, maar ik kan je al niet meer volgen.
Dit is het veld waar ik hem nu oproep:

<?php
<input id="straat" name="van" type="text" onkeyup="ajaxFunction ();" size= "50">
?>


En in het veld hier onder wil ik het weer oproepen om de bestemming in te voeren.
Ik heb al iets er in gezet, maar kun jij dit in de code van het scriptje zetten?

<?php
<input id="bestemming" name="naar" type="text" onkeyup="ajaxFunction ();" size= "50">
?>
Wat je moet doen is aan ajaxFunction() een parameter meegeven die aangeeft welk veld het betreft. In de html zou je dat als volgt kunnen doen:

<input id="bestemming" name="naar" type="text" onkeyup="ajaxFunction (this.id);" size= "50">

In Javascript kun je die parameter in je functie gebruiken:

function ajaxFunction(id)
{
}

En vervolgens geeft je het id mee als GET variabele aan de url op regel 42 in die code. In je PHP scriptje lees je deze variabele dan uit en gebruik je die op regel 28 waar je 'straat' staat.
Ben als een gek op internet aan het zoeken hoe ik die ajax functie kan maken, maar vind het nog niet echt.
Ik ben maar beginneling hoor.
Volgens mij kun je alleen steden gebruiken?

Reageren