Avatar billede madshm Nybegynder
01. november 2010 - 08:28 Der er 3 kommentarer

Tjek om forekomst i database

Hej

Jeg har et søgefelt jeg gerne vil bruge til både til at søge i google maps geocoder OG en tabel i min database. I første omgang skal jeg vide om der er forekomster i min database, hvis ikke søger den google maps.

Jeg har en javascript function der er opbygget således:


function lookup(name) {
        // geocode
        var address = document.getElementById("name").value;
    geocoder.geocode( { 'address': address}, function(results, status) {

        //database
        $.post("test.php", {queryString: ""+name+""}, function(data){


        if(name == ????????????????????????????????????????????????) {
            alert("læs database");
        } else if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);
        map.setZoom(12);
        } else {
                alert("failed");
        }
});
});
}



i mit første IF statement vil jeg gerne finde ud af om der er resultater fra database søgningen. Jeg tænker man kan tjekke en variable i mit test.php dokument?  men hvordan?

På forhånd tak
Avatar billede majbom Novice
01. november 2010 - 08:57 #1
du kan med AJAX kommunikere med et php-script uden reload af siden...
Avatar billede tjens Nybegynder
01. november 2010 - 21:50 #2
Dit test.php dokument kan returnere en enkelt tekstlinie, som bare indeholder nogle få værdier adskilt med et specialtegn.

Eks.: OK#værdiFraName#værdiFraDatabase

Så kan du få fat i værdierne i dit script med følgende
var replys=data.split("#");
if (replys[0]=="OK" {
    alert("databaselæs søgte på " + replys[1] + "\n og fandt " + replys[2];
} else ...
Avatar billede gbjensen65 Nybegynder
02. november 2010 - 18:05 #3
Du skal bruge et ajax kald, her er et eks.

function ajaxDataBase(name){
    var ajaxRequest;  // The variable that makes Ajax possible!
   
    try{
        // Opera 8.0+, Firefox, Safari
        ajaxRequest = new XMLHttpRequest();
    } catch (e){
        // Internet Explorer Browsers
        try{
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e){
                // Something went wrong
                alert("Your browser broke!");
                return false;
            }
        }
    }
    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){
            var data=ajaxRequest.responseText.split("<Q>");
            if(data[0]=="OK")
                            alert("Data findes i database" + data[1])
                        else
                            .....

    }
    var queryString = "?name=" + name;
    ajaxRequest.open("GET", "checkname.php" + queryString, true);
    ajaxRequest.send(null);
}

Du kan bruge hvilken som helst seperator i dit svar fra dit php script, jeg har valgt at bruge "<Q>"

I dig php script skal du have et check som f.eks. dette her:

$name=$_GET['name'];
$conn=@mysql_connect("host", "db", "pw");
$slq="SELECT * FROM maps WHERE name='$name'";
$result = mysql_query($sql,$conn) or die(mysql_error());
if (mysql_num_rows($result)>=1)
{
  $map=mysql_fetch_array($result);
  echo("OK<Q>".$map['navn']);
}
else
  echo("NOK<Q>Intet kort");
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester