27. januar 2007 - 18:42
Der er
14 kommentarer og 1 løsning
Arrays i arrays
Hvordan laver jeg arrays som disse udfra mysql? $transports = array( 'air'=>array('plane','helicopter','air-baloon'), 'water'=>array('boat','watersky','submarine'), 'land'=>array('motorcycle','car') ); Har en tabel med nogle kategorier, ligeledes en tabel med under kategorier, vil så gerne lave en samlet array med kategorier og deres tilhørende underkategorier, har prøvet noget lignende dette: $kategorier = mysql_query("select * from skabelon_kategori"); while ($kategori = mysql_fetch_array($kategorier)){ $underkategorier = mysql_query("select * from skabelon_underkategori WHERE kategori = '$kategori[id]'"); while ($underkategori = mysql_fetch_array($$underkategorier)){ $underkategorierne[] = $underkategori['navn']; } $samletarray[] = $kategori['navn'] => $underkategorierne; }
Annonceindlæg fra Deloitte
Slettet bruger
27. januar 2007 - 19:34
#1
Først så kan du print dem ud med funktionen print_r($samletarray); men det kommer til at se sjusket ud, men hvis du derimod tilføjer <pre> tagget omkring ser der pænt ud. print "<pre>"; print_r($samletarray); print "</pre>";
Slettet bruger
27. januar 2007 - 19:38
#2
jeg er lidt usikker på hvordan du vil have det...
27. januar 2007 - 19:50
#3
Måske $kategorier = mysql_query("select * from skabelon_kategori"); $start = array(); while ($kategori = mysql_fetch_array($kategorier)){ $start[$kategori["id"]] = array(); $underkategorier = mysql_query("select * from skabelon_underkategori WHERE kategori = '$kategori[id]'"); while ($underkategori = mysql_fetch_array($$underkategorier)){ array_push($start[$kategori["id"], $underkategori["navn"]); } } echo"<pre>"; print_r($kategori); echo"</pre>";
27. januar 2007 - 19:54
#4
Well, :O( echo"<pre>"; print_r($start); echo"</pre>";
27. januar 2007 - 20:05
#5
Får denne fejl: Parse error: syntax error, unexpected ',', expecting ']'
27. januar 2007 - 20:08
#6
to ting nok: while ($underkategori = mysql_fetch_array($$underkategorier)){ skal være while ($underkategori = mysql_fetch_array($underkategorier)){ og array_push($start[$kategori["id"], $underkategori["navn"]); skal være array_push($start[$kategori["id"]], $underkategori["navn"]);
27. januar 2007 - 20:30
#7
Det virker, men har et lille problem.. Hvis mine kategorier indeholder æ,ø eller å kommer der en fejl.. Hvis jeg bruger: Æ = Æ æ = æ Ø = Ø ø = ø Å = Å å = å Virker scriptet som det skal, men i selcetboksene laver den ikke f.eks. æ om til æ?
28. januar 2007 - 06:18
#8
echo"<option value='". htmlspecialchars($kategorier[0][0]) ."'>". htmlentities($kategorier[0][0]) ."</option>";
29. januar 2007 - 11:19
#9
Skriptet virker 100% nu, men navnene i mine sropdowns vises stadig ikke med æøå: <? include '../db/db.php'; require_once('xajax.inc.php'); class myXajaxResponse extends xajaxResponse { function addCreateOptions($sSelectId, $options) { $this->addScript("document.getElementById('".$sSelectId."').length=1"); if (sizeof($options) >0) { foreach ($options as $option) { $this->addScript("addOption('".$sSelectId."','".$option."','".$option."');"); } } } } ?> <? $kategorier = mysql_query("select * from skabelon_kategori"); while ($kategori = mysql_fetch_array($kategorier)){ $kategorierne[] = htmlentities($kategori['navn']); } $mode = $kategorierne; $kategorier2 = mysql_query("select * from skabelon_kategori"); $transports = array(); while ($kategori2 = mysql_fetch_array($kategorier2)){ $start[$kategori2["navn"]] = array(); $underkategorier = mysql_query("select * from skabelon_underkategori WHERE kategori = '$kategori2[id]'"); while ($underkategori = mysql_fetch_array($underkategorier)){ array_push($start[$kategori2["navn"]], $underkategori["navn"]); } } $transports = $start; $kategorier2 = mysql_query("select * from skabelon_underkategori"); $brands = array(); while ($kategori2 = mysql_fetch_array($kategorier2)){ $start2[$kategori2["navn"]] = array(); $underkategorier2 = mysql_query("select * from skabelon_subkategori WHERE kategori = '$kategori2[id]'"); while ($underkategori2 = mysql_fetch_array($underkategorier2)){ array_push($start2[$kategori2["navn"]], $underkategori2["navn"]); } } $brands = $start2; $xajax = new xajax(); //$xajax->debugOn(); // adds an option to the select function addTransports($selectId, $mode) { global $transports; $objResponse = new myXajaxResponse(); $data = $transports[$mode]; $objResponse->addCreateOptions($selectId, $data); return $objResponse->getXML(); } function addBrands($selectId, $transport) { global $brands; $objResponse = new myXajaxResponse(); $data = $brands[$transport]; $objResponse->addCreateOptions($selectId, $data); return $objResponse->getXML(); } $xajax->registerFunction("addTransports"); $xajax->registerFunction("addBrands"); $xajax->processRequests(); ?> <? if (isset($_POST['Submit'])) { print_r($_POST); } ?> <html> <head> <title>AJAX Dynamic Drop Down Tutorial</title> <? $xajax->printJavascript(); ?> <script type="text/javascript"> function addOption(selectId, val, txt) { var objOption = new Option(txt, val); document.getElementById(selectId).options.add(objOption); } </script> </head> <body> <form name="form1" method="POST" action=""> Type : <select name="type" id="type" onchange="xajax_addTransports('transports', document.form1.type.value)"> <option value="">--select--</option> <? foreach ($mode as $mod) { ?> <option value="<?= $mod?>"><?=$mod?></option> <? } ?> </select> Transportation : <select name="transports" id="transports" onchange="xajax_addBrands('brands', document.form1.transports.value)"><option value="">--select--</option> </select> Brands : <select name="brands" id="brands"><option value="">--select--</option> </select> <input type="submit" value="Submit" name="Submit" id="Submit"> </form> </body> </html>
29. januar 2007 - 13:01
#10
Har du en header content type? Har du prøvet: <option value="<?=htmlspecialchars($mod)?>"><?=htmlentities($mod)?></option>
29. januar 2007 - 13:07
#11
short_tags are evil! <?php istedet for <? <?php echo, istedet for <?= , tak.
29. januar 2007 - 13:30
#12
Det ændre ikke rigtig noget... Mine kategorier ligger i db med æ osv??
31. januar 2007 - 08:27
#13
Fik det ikke til at virke men showsource smid et svar for din indsats.
31. januar 2007 - 08:49
#14
Ingen point her, ellers tak. Men hvorfor gemme htmlkoden i din DB? Det er bedre først at bruge html ved udtræk. Fylder mindre i DB. Ved ikke om det evt. er her "hunden er begravet" ??? ( blandet med det ajax-halløj ) ???
31. januar 2007 - 08:54
#15
Droppede det også, slettede det hele og begyndte forfra med udgangspunkt i et andet ajaxscript som jeg fandt.
Vi tilbyder markedets bedste kurser inden for webudvikling