Avatar billede NSDK Nybegynder
22. maj 2014 - 16:21 Der er 5 kommentarer

Oprettelse af Javascript-array

Hej Eksperter,

Jeg skal bruge noget hjælp.
Jeg vil gerne have oprettet et Javascript-array indeholdende noget data jeg henter ud fra min MySQL-database.
Som I kan se i nedenstående eksempel, så vil jeg gerne have udskiftet værdierne "Andorra" mv. med mine værdier fra databasen.

var countries = [
"Andorra",
"United Arab Emirates"
];

Jeg vil meget gerne se et eksempel så jeg kan lære hvordan det skal gøres.

På forhånd tak.
Avatar billede Slater Ekspert
22. maj 2014 - 18:02 #1
Det kommer langt mere an på, hvordan du hiver data ud af databasen, end Javascript. Hvilket sprog og hvordan gør du?
Avatar billede NSDK Nybegynder
22. maj 2014 - 18:09 #2
Nå for pokker. Jamen jeg benytter PHP til at hente data ud fra min MySQL-database.
Avatar billede Slater Ekspert
22. maj 2014 - 19:40 #3
Skal vi gå ud fra, du bruger mysql eller mysqli til det?

Så vil din kode f.eks. ligne noget i denne stil:

<?php

// Mysql forbindelse og SQL kald her.

$countries = array();
while ($row = $result->fetch_assoc())
  $countries[] = '"'. $row['country'] . '"';

?>

var countries = [<?php echo implode(',', $countries); ?>];


- Men det er kun et eksempel. Vi skal se din PHP-kode for at vide mere præcist end det.
Avatar billede NSDK Nybegynder
22. maj 2014 - 23:07 #4
Kan det eksempel du har lavet skrives i en .js fil?
Jeg prøver lige nu at tilpasse og få et autocomplete-input script til at fungere som jeg gerne vil have det, og i deres eksempel er alle værdierne bare skrevet ud i en .js fil, og jeg vil så gerne hente mine værdier fra en database, da jeg har rigtigt mange.

Sådan ser min .js fil ud nu (Har fjernet databaseforbindelsen):
<?php
$con = mysqli_connect('','','','');
if (!$con) {
  die('Could not connect: ' . mysqli_error($con));
}

mysqli_select_db($con,"");
$sql="SELECT * FROM Clubs";
$result = mysqli_query($con,$sql);

$countries = array();
while ($row = mysqli_fetch_array($result))
  $countries[] = '"'. $row['Name'] . '"';

?>

var countries = [<?php echo implode(',', $countries); ?>];
Avatar billede Slater Ekspert
23. maj 2014 - 07:20 #5
Ikke umiddelbart. Filen skal fortolkes som PHP-kode, før du kan skrive PHP-kode i den, og det som standard kun .php-filer.

Hvis du har adgang til serverens opsætning, kan du sætte den til at fortolke .js-filer som PHP også, selvom det indbyder til grimme fejl, hvis du nogensinde flytter server. Bedre er at bruge noget rewriting, f.eks. i .htaccess, til at omskrive den .js-fil til en .js.php-fil, og så have koden i den.

Men den letteste løsning her, vil være at sætte det array i en php-fil. Du kan stadig have al din anden Javascript-kode i en ekstern .js-fil, bare du lige har linjen
var countries = [<?php echo implode(',', $countries); ?>];
i en PHP - og naturligvis før resten af din Javascript-kode bliver indlæst.
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

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