Avatar billede steen-h Mester
03. maj 2008 - 18:00 Der er 11 kommentarer og
1 løsning

array push

Jeg har noget fra databasen jeg skal have puttet i et array.

Jeg definere array'et først
cate = new Array();


while ($row = @mysql_fetch_assoc($result_k_sted)) {
?>

<script type="text/JavaScript">

cate[<?php echo $tel?>].push(<?echo $row["foreningensnavn"]?>);

</script>


<?php

Der kommer ikke noget i array'et

Følgende udskriver undefined
window.alert(cate[0]);

Jeg ønsker at tilføje alle felter fra database kaldet,
hvad gør jeg galt.
Avatar billede virtual1ty Nybegynder
03. maj 2008 - 18:06 #1
Hvorfor putter du det ikke bare i et array i PHP?
Avatar billede virtual1ty Nybegynder
03. maj 2008 - 18:08 #2
$res = mysql_fetch_array($result_k_sted);

echo "$res['foreningensnavn']";

Ovenstående vil tilføje alle de fundne værdier fra SQL-forespørgslen og smide dem i et array ved navn $res.
Avatar billede virtual1ty Nybegynder
03. maj 2008 - 18:11 #3
Hvis du senere får brug for at skrive en værdi i en Alert-boks, så kan du muligvis gøre således (Ikke testet):

<script type="text/javascript">
alert('<?php print $res[foreningensnavn]; ?>');
</script>
Avatar billede steen-h Mester
03. maj 2008 - 18:11 #4
Jeg har brug for et multi array i java script.

Det skal bruges i noget google maps.
Avatar billede olebole Juniormester
03. maj 2008 - 18:24 #5
<ole>

<?
function getJSarray() {
    $a = array();
    $result_k_sted = [MYSQL_QUERY];
    while ($row = @mysql_fetch_assoc($result_k_sted)) {
        $a[] = "['".$row["felt_0"]."', '".$row["felt_1"]."', '".$row["felt_2"]."']";
    }
    return implode(",", $a);
}
?>

<script type="text/JavaScript">
var cate = new Array(
    <?=getJSarray()?>
);

alert(cate[0][1]);
</script>

/mvh
</bole>
Avatar billede erikjacobsen Ekspert
03. maj 2008 - 18:39 #6
Højrehånden holdt måske weekend, Ole? Man bør vel ikke putte ukendt tekst i en javascript-streng uden at javascript-encode det.
Avatar billede steen-h Mester
03. maj 2008 - 19:12 #7
Du får lige al koden, den er lidt rodet, men kan pt. ikke finde ud af at lave det bedre.

Jeg finder først hvilke mødesteder klubberne bruger, derefter hentes mødesteder og gemmer positionen, derefter hentes  hvilke klubber på adressen


Limit er kun pga test.

$parser->D->dbSetTable("fritid_stamoplysninger"); // hent mødesteder
$result_sted = $parser->D->dbQuery("select modestedid  ,count(modestedid) from " . $parser->D->table . " where modestedid > 1 GROUP BY modestedid LIMIT 3");

$tel = 0;
while ($row = @mysql_fetch_assoc($result_sted)) {

$parser->D->dbSetTable("fritid_modested"); // hent mødesteder adresse
$result_k_adr = $parser->D->dbQuery("select * from " . $parser->D->table . " where modestedid = '".$row["modestedid"]."'  ");
$row = @mysql_fetch_assoc($result_k_adr);
  $lat_array[] = "\"".$row["lat"]."\"";
  $lon_array[] = "\"".$row["lon"]."\"";
  $navn_array[] = "\"".$row["foreningensmodested"]."\"";

$parser->D->dbSetTable("fritid_stamoplysninger"); // hent klubber hver sted
$result_k_sted = $parser->D->dbQuery("select * from " . $parser->D->table . " where modestedid = '".$row["modestedid"]."' ");


while ($row = @mysql_fetch_assoc($result_k_sted)) {

?>

<script type="text/JavaScript">

  cate[<?php echo $tel?>].push(<?php echo $row["foreningensnavn"]?>);

</script>


<?php

}
$tel = $tel+1;
}
Avatar billede steen-h Mester
03. maj 2008 - 19:16 #8
Grunden til jeg valgte cate som java script array er at jeg ikke kan finde ud at lave et php multi array til java script
Avatar billede olebole Juniormester
03. maj 2008 - 21:38 #9
Erik >> Ja, det bør man, hvis man ikke holder styr på indholdet under indsætning. Det er dog en større omgang - og afhængig af det valgte tegnsæt.

steen-h >> Jeg skal ikke bruge resten af koden til noget. Du skal bare sætte koden, jeg skrev, ind. Så kan du se i View->Source, hvad der udskrives  =)
Avatar billede steen-h Mester
04. maj 2008 - 07:37 #10
olebole du må undskylde jeg skulle lige sove på det før jeg kunne overskue koden.

Jeg har rettet følgende, for at google maps kan lide det.

$a[] = "\"".$row["foreningensnavn"]."\"";

og så skulle jeg gemme et array for hver gennemløb

<script type="text/JavaScript">
  var cate = new Array(
    <?=getJSarray($row["modestedid"])?>
);

cat[cat.length] = cate;
</script>

Tak for hjælpen, lægger du et svar olebole.
Avatar billede olebole Juniormester
04. maj 2008 - 16:09 #11
Okay - jeg havde fået forståelsen af, det skulle være et flerdimensionelt array. Derfor anvendte jeg koden:
    $a[] = "['".$row["felt_0"]."', '".$row["felt_1"]."', '".$row["felt_2"]."']";

- som svarer til, at JS-array'et vil se ud noget à la dette (hvis der altså var tale om personinformationer):
    var cate = new Array(
        ['OleBole', '52', 'mand', 'kodehovede'],
        ['BimmerMand', '12', 'mand', 'skoleelev']
    );

- men bare du finder ud af det, er jeg tilfreds  =)
Avatar billede olebole Juniormester
05. maj 2008 - 21:08 #12
Tak for points  ;o)
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

IT-JOB