Mysql data in javascript array

Status
Niet open voor verdere reacties.

Kligham

Gebruiker
Lid geworden
7 jan 2009
Berichten
389
Hallo,

Opm: zowel een PHP, als een javascript vraag!

Ik ben bezig een script aan te passen. In het script wordt er gewerkt met Xml, en ik wil dit nu veranderen in mysql. Mijn informatie moet dus uit mijn database gehaald worden, en daarna moet javascript dit gaan displayen, en dit is nu waar het schoentje wringt:

Aan de hand van een input in een text veld, wordt er naar al de mogelijke combinaties gezocht. Bijvoorbeeld ik typ aa in het text veld, dan krijg ik doormiddel van de volgende functie een array vol met data:

Code:
SELECT * FROM locatie WHERE gemeente LIKE '".$q."%' LIMIT 20"

Dit kan ik dan gaan uitlezen en gaan steken in een array dmv de volgende functie:

mysql_fetch_array())

Hier is er nu al een probleem. ik moet nu namelijk 2 arrays krijgen met daarin alle mogelijkheden, bijvoorbeeld:

$gemeente = ("aalbeke", "aalter", "aalst","aarschot");
$postnummer = ('"9880","5658","6154", "4687);

Hoe verkrijg ik dit? Kan op deze manier?

Code:
while($row = mysql_fetch_array($result))
  {
  $gemeente =  $row['gemeente'] ;
  $postnummer = $row['postnummer'] ;
  }

of zo (zonder de while loop):

Code:
$result = query->(SELECT * FROM locatie WHERE gemeente LIKE '".$q."%' LIMIT 20")

$row = mysql_fetch_array($result)

$gemeente =  $row['gemeente'] ;
$postnummer = $row['postnummer'] ;

Maar als ik dergelijke 2 array verkregen heb, hoe kan ik ze dan gaan gebruiken in mijn javascript code? Met andere woorden, hoe laat ik javascript deze array gebruiken; wetende dat het javascript in een externe javascript file staat?

Hopelijk kan iemand mij verder helpen
 
Laatst bewerkt:
Die eerste oplossing zou moeten werken om de resultaten op te halen.

Als je de informatie binnen de pagina wilt gaan gebruiken, en alles van tevoren hebt, dan kun je de informatie gewoon echo'en in Javascript formaat. Dan pakt Javascript het automatisch op; want het staat in de broncode en het is een global array. Gewoon zorgen dat je het juiste format output met variabele naam enzo.

Als je de informatie ter plekke op wilt halen, dan moet je een AJAX call doen; gewoon even een kleine library ergens vandaan halen. Dan kun je een PHP script aanroepen, dat vervolgens de arrays terug kan geven zodat je die kunt gebruiken.
 
Bedankt voor je antwoord.

Nu heb ik nog een vraagje ivm. ajax. Ik weet hoe de xmlhttp request in zijn werk gaat (en ook hoe ik hem schrijf), alleen weet ik niet hoe ik de functie zou moeten maken om die php array in javascript te kunnen gebruiken. Iemand enig idee? Ik weet namelijk nog niet veel af van dat hele ajax gebeuren?
 
Hier is de PHP code, die ik zou gebruiken om de suggesties uit mijn database te gaan halen.

PHP:
<?php

$q=$_GET["q"];

$con = mysql_connect('localhost', '*****', '******');
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("vetweb", $con);

$sql="SELECT * FROM locatie WHERE gemeente LIKE '".$q."%' LIMIT 20";

$result = mysql_query($sql);

while($row = mysql_fetch_array($result))
{
  $gemeente =  $row['gemeente'] ;
  $postnummer = $row['postnummer'] ;
}

mysql_close($con);

?>

Er zouden dus 2 dingen moeten gebeuren door ajax:
- de q zou de inhoud van een text variabele moeten zijn die ajax doorgeeft aan mijn php file
- mijn array van gemeente en postnummer zouden moeten bruikbaar zijn in javascript

Is er iemand die mij een handje kan helpen?
 
Ik denk dat het het makkelijkste is als je de array in je php-file laat omzetten naar een JSON object, en deze dan dus aan je ajax geeft. Dan is het gelijk leesbaar voor js. Google een beetje rond op javascript/php json.:thumb:


Je ajax:
PHP:
//js

var q = document.getElementById('textveld').value;
ajax.send('GET','bla.php?q=' + q,true);

ajax.onstatuschange = function()
{
   $stuff = json_parse(ajax.responsetext);
   alert($stuff.gemeente[0]);  //geeft dat je 1e gemeente
}

bla.php:
PHP:
<?php

$q = $_GET['q'];
//doe wat magie;
//database stuff;
//meer magie,

$json = array2JSON($gemeente , $postnummer);

echo $json;

?>
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan