Domanda

Come vedrai, sono un principiante a tutte queste cose Ajax ma posso fare un po 'di PHP e così ciotto per Xajax per prendersi cura del JavaScript per me.

Ho un array con oggetti elencati in diverse sezioni. Voglio usare questo array per produrre un elenco non ordinato che si espande quando qualcuno fa clic su una sezione.

Ho adattato uno script che ho trovato qui:

Disegno scorrevole

Il mio script è attualmente simile a questo:

<?php

include ("xajax_core/xajax.inc.php");

$subs =     array(
        "Mortice" => array("Union Deadlock 2.5", "Union Deadlock 3",      "Union Sashlock 2.5", "Union Sashlock 3"),
        "Cylinders" => array("30/30 Euro", "30/40 Euro", "30/50 Euro", "30/60 Euro"),
        "uPVC" => array("30/92 Fullex", "35/92 Fullex", "Sash jammer")
        );

function addsub($show, $key)
{

$objResponse=new xajaxResponse();

if ($show=="true") {
    $objResponse->assign("list", "style.display", "block");
    $objResponse->replace("$key","innerHTML","true","false");
}
else {
    $objResponse->assign("list", "style.display", "none");
    $objResponse->replace("$key","innerHTML","false","true");
}

return $objResponse;
}

$xajax = new xajax();
$xajax->registerFunction("addsub");
$xajax->processRequest();

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org /TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php $xajax->printJavascript() ?>
<title>Expand menu test</title>
<style type="text/css">

.list {display: none;}

</style>
</head>

<body>

<?php
echo "<ul>\n";

foreach ($subs as $key => $group) {
echo "<li id=\"".$key."\" onClick=\"xajax_addsub('true','$key');\">".$key."\n";
echo "<ul class=\"list\" id=\"list\">\n";
    while (list($list, $each) = each($group)) {
        echo "<li id=\"list\">".$each."</li>\n";
        }
    echo "</ul>\n</li>\n";
}

echo "</ul>";


?>




</body>
</html>
.

L'idea è che quando viene cliccato un elemento su di esso modifica il display di stile da bloccare (mostrando così il resto dell'elenco) e imposta la funzione su "false" quindi se si fa clic su di nuovo cambierà il display a nessuno e nascondi la lista.

Inutile dire che non funziona così se qualcuno potrebbe indicarmi perché sarei eternamente grato.

Saluti,

nick.

Risolto - L'ho ordinato posizionando gli elenchi da mostrare (o nascosto) in <divs> e assegnandoli ciascuno un ID univoco e impostando il loro stile come display: Nessuno. Quindi dovevo solo fare una richiesta per impostare lo stile come blocco quando è stato cliccato su.

Grazie.

È stato utile?

Soluzione

Penso che dovresti guardare in jQuery come libreria JavaScript predefinita, è usato da molti professionisti del web ed è molto buono.Lì troverai il fisarmonica Controllo, che penso che suiterrà questo bisogno molto bene.

Buona fortuna!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top