Xajax Extension de la liste
Question
Comme vous le verrez, je suis un débutant de tous ces trucs de l'Ajax, mais je peux faire un peu de PHP et j'ai donc repulpé pour que Xajax s'occupe du JavaScript pour moi.
J'ai un tableau avec des éléments répertoriés dans une section différente. Je souhaite utiliser ce tableau pour produire une liste non ordonnée qui se développe lorsque quelqu'un clique sur une section.
J'ai adapté un script que j'ai trouvé ici:
Mon script ressemble actuellement à ceci:
<?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'idée est que lorsqu'un élément est cliqué dessus, il modifie l'affichage de style pour bloquer (affichant ainsi le reste de la liste) et définit la fonction sur `` False '', donc s'il est cliqué à nouveau, il changera l'affichage en aucun et masquera le liste.
Inutile de dire que cela ne fonctionne pas, donc si quelqu'un pouvait me souligner pourquoi je serais éternellement reconnaissant.
Acclamations,
Pseudo.
Solved - je l'ai trié en plaçant les listes à afficher (ou cachées) dans <divs>
et leur attribuer chacun un ID unique et définir leur style comme affichage: aucun. Ensuite, je devais juste faire une demande pour définir le style sous forme de bloc lorsqu'il a cliqué sur.
Merci.