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:

Tirage coulissant

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.

Était-ce utile?

La solution

Je pense que tu devrais regarder jquery En tant que bibliothèque JavaScript par défaut, elle est utilisée par de nombreux professionnels du Web et est très bonne. Vous y trouverez le Accordéon Contrôle, ce qui, je pense, conviendra très bien à ce besoin.

Bonne chance!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top