thomasxu.fr Posted November 9, 2009 Share Posted November 9, 2009 deja chui pas tres fort ak les ajax javascript....tt les codages suivantes je l'ai trouver sur net.......mai enfin un peu de melange...........alor finalement g qd meme reussit à faire une recherche rapide sur categorie...mai le navig IE me donne un message erreur sur la page alor quelqu un peut m'aider à finir ce module.......blockcategories.tpl : [removed][removed] <!-- Block categories module --> {l s='Categories' mod='blockcategories'} {l s='All categoies' mod='blockCategTree'} {foreach from=$blockCategTree.children item=child name=blockCategTree}$link->getCategoryLink($category->id, $category->link_rewrite {$child.name} {/foreach} {foreach from=$blockCategTree.children item=child name=blockCategTree} {if $smarty.foreach.blockCategTree.last} {include file=$branche_tpl_path node=$child last='true'} {else} {include file=$branche_tpl_path node=$child} {/if} {/foreach} [removed] // <![CDATA[ // we hide the tree only if JavaScript is activated $('div#categories_block_left ul.dhtml').hide(); // ]]> [removed] <!-- /Block categories module --> tools.js function linkTo(optVal){ if(optVal=="") return false; [removed]='http://www.diymicro.fr/category.php?id_category='+optVal; } function getXMLHttpRequest() { var xhr = null; if (window.XMLHttpRequest || window.ActiveXObject) { if (window.ActiveXObject) { try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { xhr = new XMLHttpRequest(); } } else { alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest..."); return null; } return xhr; } function request(oSelect, select_name) { //Une seule requête à la fois ! //En considérant l'exemple précédent, que ce passe-t-il si l'utilisateur clique plusieurs fois sur le bouton d'envoi ? Et bien la réponse est simple, la requête est envoyée plusieurs fois. Ce qu'il faudrait c'est trouver une astuce pour annuler la requête en cours si une nouvelle est envoyée. //Pour ce fait, il va falloir stocker l'objet XMLHttPrequest dans un objet global, xhr, et il n'y aura qu'à tester l'état de cet objet avant d'envoyer une nouvelle requête. Si l'état est différent de 0 (la requête est en cours), il suffit de l'annuler pour envoyer la nouvelle. On peut aussi décider de ne pas envoyer la nouvelle, au choix ?a. var value = oSelect.options[oSelect.selectedIndex].value; var xhr = getXMLHttpRequest(); // Voyez la fonction getXMLHttpRequest() définie dans la partie précédente if (xhr && xhr.readyState != 0) { xhr.abort(); // On annule la requête en cours ! } xhr.onreadystatechange = function() { if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { readData(xhr.responseXML, select_name); document.getElementById("loader").style.display = "none"; } else if (xhr.readyState < 4) { document.getElementById("loader").style.display = "inline"; } }; xhr.open("POST", "XMLHttpRequest_getListData.php", true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send("IdEditor=" + value); } function readData(oData, select_name) { var nodes = oData.getElementsByTagName("item"); var oSelect; var oOption, oInner; if(select_name=="softwaresSelect"){oSelect = document.getElementById("softwaresSelect"); oSelect[removed] = ""; for (var i=0, c=nodes.length; i oOption = document.createElement("option"); oInner = document.createTextNode(nodes[i].getAttribute("name")); oOption.value = nodes[i].getAttribute("id"); oOption.appendChild(oInner); oSelect.appendChild(oOption); } } else if(select_name=="prodSelect"){oSelect = document.getElementById("prodSelect"); oSelect[removed] = ""; for (var i=0, c=nodes.length; i oOption = document.createElement("option"); oInner = document.createTextNode(nodes[i].getAttribute("name")); oOption.value = nodes[i].getAttribute("id"); oOption.appendChild(oInner); oSelect.appendChild(oOption); } } } XMLHttpRequest_getListData.php dan la racine du repertoire de prestashop <?php include(dirname(__FILE__).'/config/config.inc.php'); header("Content-Type: text/xml"); echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>"; echo ""; $idEditor = (isset($_POST["IdEditor"])) ? htmlentities($_POST["IdEditor"]) : NULL; if ($idEditor) { $categories = array(); $categories = Category::getChildren($idEditor,'1',true); foreach ($categories AS $row){ echo ""; } } echo ""; ?> Link to comment Share on other sites More sharing options...
thomasxu.fr Posted November 9, 2009 Author Share Posted November 9, 2009 ...................je sai que la partie de categorie tpl ...c un peu bidouye mai je fai le maximun hahaha Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now