panneau reductible

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : panneau reductible

Re: panneau reductible

par Sophie13 » 19 déc. 2011, 10:43

Bonjour a tous,

voila ce que j'ai fait:

Code : Tout sélectionner

<tr><td><div id=\"CollapsiblePanel1\" class=\"CollapsiblePanel\"> <div class=\"CollapsiblePanelTab\" tabindex=\"0\">Déscription:</div> <div class=\"CollapsiblePanelContent\">$Descriptif_produit</div> </div></td></tr>
mais celui ci ne marche que sur ma première requête, sur les autres produits cela ne marche . que puis je changer?

merci

Re: panneau reductible

par Sophie13 » 18 déc. 2011, 22:01

Merci beaucoup, mais je comprend pas ou je dois mettre ma partie php ? #-o #-o #-o #-o #-o 8-| 8-|

Re: panneau reductible

par dix2 » 18 déc. 2011, 21:42

salut,

tu peux le faire en AJAX
il y a quelques années, j'ai codé un script avec cette technologie
c'était un moteur de recherche relié à un dictionnaire Français-Anglais en base de données
voici le script en 2 fichiers :

searchDef.php :
<?PHP
include_once("../includes/definitions.inc.php");
include_once("../includes/common.inc.php");
include_once("../includes/gestionFichiersTxtParam.inc.php");
include_once("../includes/gestionParamConnServMysql.inc.php");
include_once("../includes/gestionMysql.inc.php");

session_name(NOM_SESSION_VOCAB);
session_start();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>VOCAB</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="Content-Script-Type" content="text/javascript" />
    <link rel="stylesheet" type="text/css" href="../CSS/vocab.css" />
    <script src="../javascript/gestionString.js"></script>
    <script>
//<![CDATA[
//Note : extLI_E2F et extLI_F2E correspondent aux LI etendus cad la valeur -1 existe et signifie que la def est unilaterale
//Note : restLI_E2F et restLI_F2E correspondent aux LI restreints cad la valeur -1 n'existe pas
var nbDefParPage = 10; //nbDefParPage doit etre superieur ou egal a 2
var xmlDocRes;
var numPage;

function formatXmlDocRes(){
  var eltsEn = xmlDocRes.getElementsByTagName("english");
  var eltsFr = xmlDocRes.getElementsByTagName("french");

  for(var i = 0; i < eltsEn.length; i++){
    if(eltsEn[i].childNodes.length == 0){
      eltsEn[i].appendChild(document.createTextNode(""));
    };
    if(eltsFr[i].childNodes.length == 0){
      eltsFr[i].appendChild(document.createTextNode(""));
    };
  }
}

//gere l'affichage dans la partie "Modification d'une definition"
function gestionDispMod(typeDef){
  switch(typeDef){
    case "EnToFr":
      document.getElementById("newRestLI_F2E").disabled = true;
      document.getElementById("newRestLI_E2F").disabled = false;
      document.getElementById("newFlagFr").disabled = true;
      document.getElementById("newFlagEn").disabled = false;
      break;
    case "FrToEn":
      document.getElementById("newRestLI_F2E").disabled = false;
      document.getElementById("newRestLI_E2F").disabled = true;
      document.getElementById("newFlagFr").disabled = false;
      document.getElementById("newFlagEn").disabled = true;
      break;
    case "both":
      document.getElementById("newRestLI_F2E").disabled = false;
      document.getElementById("newRestLI_E2F").disabled = false;
      document.getElementById("newFlagFr").disabled = false;
      document.getElementById("newFlagEn").disabled = false;
      break;
  };
}

//calcule le nombre de pages correspondant au document XML "xmlDocRes" en fonction du nombre de definitions par page "nbDefParPage"
function calcNbPages(){
  var nbDefTotal = (xmlDocRes.getElementsByTagName("english")).length;
  return Math.ceil(nbDefTotal / nbDefParPage);
}

//met a jour l'affichage du nombre de definitions trouvees
function majParaNbFoundDef(){
  var nbDefTotal = xmlDocRes.getElementsByTagName("english").length;

  if(nbDefTotal <= 1){
    document.getElementById("nbFoundDef").innerHTML = nbDefTotal + " d&eacute;finition trouv&eacute;e";
  }
  else{
    document.getElementById("nbFoundDef").innerHTML = nbDefTotal + " d&eacute;finitions trouv&eacute;es";
  };
}

//met a jour l'affichage du tableau des definitions trouvees
function majTabDef(){
  var nbDefTotal = xmlDocRes.getElementsByTagName("english").length;
  
  if(nbDefTotal == 0){
    document.getElementById("tableSearchRes").style.display = "none";
    document.getElementById("navigPrec").style.display = "none";
    document.getElementById("navigSuiv").style.display = "none";
  }
  else{
    var nbDispDef;
    var rangFirstDispDef = nbDefParPage * (numPage - 1);
    var eltsDef = xmlDocRes.getElementsByTagName("definition");
    var eltsEn = xmlDocRes.getElementsByTagName("english");
    var eltsFr = xmlDocRes.getElementsByTagName("french");
    var eltsExtLI_E2F = xmlDocRes.getElementsByTagName("extLI_E2F");
    var eltsExtLI_F2E = xmlDocRes.getElementsByTagName("extLI_F2E");
    var eltsFlag = xmlDocRes.getElementsByTagName("flag");
    var tempNumDef, tempEn, tempFr, tempExtLI_E2F, tempExtLI_F2E, tempFlag;

    document.getElementById("tableSearchRes").style.display = "table";
    if((numPage * nbDefParPage) <= nbDefTotal){
      nbDispDef = nbDefParPage;
    }
    else{
      nbDispDef = nbDefTotal % nbDefParPage;
    };
    if(numPage == 1){
      document.getElementById("navigPrec").style.display = "none";
    }
    else{
      document.getElementById("navigPrec").style.display = "table-cell";
    };
    if(numPage == calcNbPages()){
      document.getElementById("navigSuiv").style.display = "none";
    }
    else{
      document.getElementById("navigSuiv").style.display = "table-cell";
    };
    for(var i = 0; i < nbDispDef; i++){
      tempNumDef = eltsDef[rangFirstDispDef + i].getAttribute("num");
      tempEn = eltsEn[rangFirstDispDef + i].firstChild.nodeValue;
      tempFr = eltsFr[rangFirstDispDef + i].firstChild.nodeValue;
      tempExtLI_E2F = eltsExtLI_E2F[rangFirstDispDef + i].firstChild.nodeValue;
      tempExtLI_F2E = eltsExtLI_F2E[rangFirstDispDef + i].firstChild.nodeValue;
      tempFlag = eltsFlag[rangFirstDispDef + i].firstChild.nodeValue;
      document.getElementById("tr"+i).style.display = "table-row";
      if((tempFlag == 2) || (tempFlag == 3)){
        document.getElementById("td"+i+"-0").innerHTML = "<span style=\"color:red\">*&nbsp;</span>";
      }
      else{
        document.getElementById("td"+i+"-0").innerHTML = "";
      };
      document.getElementById("td"+i+"-0").innerHTML += myHtmlEntExceptBR(tempFr);
      if((tempFlag == 1) || (tempFlag == 3)){
        document.getElementById("td"+i+"-1").innerHTML = "<span style=\"color:red\">*&nbsp;</span>";
      }
      else{
        document.getElementById("td"+i+"-1").innerHTML = "";
      };
      document.getElementById("td"+i+"-1").innerHTML += myHtmlEntExceptBR(tempEn);
      document.getElementById("td"+i+"-2").innerHTML = tempExtLI_F2E;
      document.getElementById("td"+i+"-3").innerHTML = tempExtLI_E2F;
      document.getElementById("button"+i+"-4").setAttribute("onclick", 'initModDef(' + tempNumDef + ")");
      document.getElementById("button"+i+"-5").setAttribute("onclick", "gestionDelDef(" + tempNumDef + ")");
    };
    for(var i = nbDispDef; i < nbDefParPage; i++){
      document.getElementById("tr"+i).style.display = "none";
    };
  };
}

//renvoie les donnees POST pour la requete AJAX de recherche des definitions
function postDataForSearch(searchedStr, typeSearch, isCaseSensitive, onlyFlagTerms){
  var res;

  res = "searchedStr=" + encodeURIComponent(searchedStr);
  res += "&typeSearch=" + typeSearch;
  res += "&isCaseSensitive=" + isCaseSensitive;
  res += "&onlyFlagTerms=" + onlyFlagTerms;
  return res;
}

//renvoie les donnees POST pour la requete AJAX de modification de la definition
function postDataForModDef(numDef, english, french, extLI_E2F, extLI_F2E, flag){
  var res;

  res = "numDef=" + numDef;
  res += "&english=" + encodeURIComponent(english);
  res += "&french=" + encodeURIComponent(french);
  res += "&extLI_E2F=" + extLI_E2F;
  res += "&extLI_F2E=" + extLI_F2E;
  res += "&flag=" + flag;
  return res;
}

//gere les elements de la page au chargement de celle-ci
function gestionOnload(){
  var tempTr;
  var tempTd;
  var tempButton;

  document.getElementById("searchedStr").focus();
  for(var i = 0; i < nbDefParPage; i++){
    tempTr = document.createElement("tr");
    tempTr.setAttribute("id", "tr"+i);
    if((i % 2) == 1){
      tempTr.setAttribute("style", "background-color:rgb(195,195,195)");
    }
    else{
      tempTr.setAttribute("style", "background-color:rgb(220,220,220)");
    };
    document.getElementById("tbodySearchRes").appendChild(tempTr);
    for(var j = 0; j < 6; j++){
      tempTd = document.createElement("td");
      tempTd.setAttribute("id", "td"+i+"-"+j);
      if(j > 1){
        tempTd.setAttribute("align", "center");
      };
      if(j > 3){
        tempButton = document.createElement("button");
        tempButton.setAttribute("id", "button"+i+"-"+j);
        if(j == 4){
          tempButton.setAttribute("title", "MODIFIER");
          tempButton.innerHTML = "Mod";
        }
        else{
          tempButton.setAttribute("title", "SUPPRIMER");
          tempButton.innerHTML = "Del";
        };
        tempTd.appendChild(tempButton);
      };
      tempTr.appendChild(tempTd);
    };
  };
}

//gere la recherche des definitions
function gestionSearch(searchedStr, typeSearchIsOnlyEn, typeSearchIsOnlyFr, isCaseSensitive, onlyFlagTerms){
  var typeSearch;
  
  document.getElementById("divModDef").style.display = "none";
  if(typeSearchIsOnlyEn){
    typeSearch = "onlyEn";
  }
  else if(typeSearchIsOnlyFr){
    typeSearch = "onlyFr";
  }
  else{
    typeSearch = "both";
  };
  if(window.XMLHttpRequest){
    xhr = new XMLHttpRequest();
  }
  else if(window.ActiveXObject){
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
  }
  else{
    alert("Votre navigateur n'est pas compatible avec AJAX");
  };
  if(xhr){
    xhr.onreadystatechange = function(){
      if(xhr.readyState == 4 && xhr.status == 200){
        xmlDocRes = xhr.responseXML;
        formatXmlDocRes();
        numPage = 1;
        majParaNbFoundDef();
        majTabDef();
        document.getElementById("divSearchRes").style.display = "block";
        window.location = "#ancreSearchRes";
      };
    };
    xhr.open("POST", "./searchDefRes.php?<?PHP echo(session_name()."=".session_id()) ?>", true);
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
    xhr.send(postDataForSearch(searchedStr, typeSearch, isCaseSensitive, onlyFlagTerms));
  };
}

//gere la modification de la definition
function gestionModDef(numDef, english, french, flagEn, flagFr, typeIsE2F, typeIsF2E, restLI_E2F, restLI_F2E){
  var extLI_E2F, extLI_F2E;
  var flag = 0;

  if(typeIsE2F){
    extLI_F2E = -1;
  }
  else{
    extLI_F2E = restLI_F2E;
    if(flagFr){
      flag = 2;
    };
  };
  if(typeIsF2E){
    extLI_E2F = -1;
  }
  else{
    extLI_E2F = restLI_E2F;
    if(flagEn){
      flag++;
    };
  };
  if(window.XMLHttpRequest){
    xhr = new XMLHttpRequest();
  }
  else if(window.ActiveXObject){
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
  }
  else{
    alert("Votre navigateur n'est pas compatible avec AJAX");
  };
  if(xhr){
    xhr.onreadystatechange = function(){
      if(xhr.readyState == 4 && xhr.status == 200){
        xmlDocRes.evaluate('./definition[@num="' + numDef + '"]/english', xmlDocRes.documentElement, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.firstChild.nodeValue = myNL2BR(english);
        xmlDocRes.evaluate('./definition[@num="' + numDef + '"]/french', xmlDocRes.documentElement, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.firstChild.nodeValue = myNL2BR(french);
        xmlDocRes.evaluate('./definition[@num="' + numDef + '"]/extLI_E2F', xmlDocRes.documentElement, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.firstChild.nodeValue = extLI_E2F;
        xmlDocRes.evaluate('./definition[@num="' + numDef + '"]/extLI_F2E', xmlDocRes.documentElement, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.firstChild.nodeValue = extLI_F2E;
        xmlDocRes.evaluate('./definition[@num="' + numDef + '"]/flag', xmlDocRes.documentElement, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.firstChild.nodeValue = flag;
        majTabDef();
        window.location = "#ancreSearchRes";
        document.getElementById("divModDef").style.display="none";
        alert("Vos modifications ont bien \xE9t\xE9 enregistr\xE9es");
      };
    };
    xhr.open("POST", "./modifyDefAjax.php?<?PHP echo(session_name()."=".session_id()) ?>", true);
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
    xhr.send(postDataForModDef(numDef, english, french, extLI_E2F, extLI_F2E, flag));
  };
}

//initialise la modification de la definition
function initModDef(numDef){
  var english = xmlDocRes.evaluate('./definition[@num="' + numDef + '"]/english', xmlDocRes.documentElement, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.firstChild.nodeValue;
  var french = xmlDocRes.evaluate('./definition[@num="' + numDef + '"]/french', xmlDocRes.documentElement, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.firstChild.nodeValue;
  var extLI_E2F = xmlDocRes.evaluate('./definition[@num="' + numDef + '"]/extLI_E2F', xmlDocRes.documentElement, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.firstChild.nodeValue;
  var extLI_F2E = xmlDocRes.evaluate('./definition[@num="' + numDef + '"]/extLI_F2E', xmlDocRes.documentElement, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.firstChild.nodeValue;
  var defCreationDateTime = xmlDocRes.evaluate('./definition[@num="' + numDef + '"]/defCreationDateTime', xmlDocRes.documentElement, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.firstChild.nodeValue;
  var LI_EnToFr_lastUpdateDateTime = xmlDocRes.evaluate('./definition[@num="' + numDef + '"]/LI_EnToFr_lastUpdateDateTime', xmlDocRes.documentElement, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.firstChild.nodeValue;
  var LI_FrToEn_lastUpdateDateTime = xmlDocRes.evaluate('./definition[@num="' + numDef + '"]/LI_FrToEn_lastUpdateDateTime', xmlDocRes.documentElement, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.firstChild.nodeValue;
  var flag = xmlDocRes.evaluate('./definition[@num="' + numDef + '"]/flag', xmlDocRes.documentElement, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.firstChild.nodeValue;

  document.getElementById("spanModNumDef").innerHTML = numDef;
  document.getElementById("spanModDefCreationDateTime").innerHTML = defCreationDateTime;
  document.getElementById("numDefForMod").value = numDef;
  document.getElementById("newEnglish").value = myBR2NL(english);
  document.getElementById("newFrench").value = myBR2NL(french);
  if(LI_FrToEn_lastUpdateDateTime == "NULL"){
    document.getElementById("spanModLI_FrToEn_lastUpdateDateTime").innerHTML = "jamais "vu"";
  }
  else{
    document.getElementById("spanModLI_FrToEn_lastUpdateDateTime").innerHTML = ""vu" la derni&egrave;re fois le&nbsp;:&nbsp;" + LI_FrToEn_lastUpdateDateTime;
  };
  if(LI_EnToFr_lastUpdateDateTime == "NULL"){
    document.getElementById("spanModLI_EnToFr_lastUpdateDateTime").innerHTML = "jamais "vu"";
  }
  else{
    document.getElementById("spanModLI_EnToFr_lastUpdateDateTime").innerHTML = ""vu" la derni&egrave;re fois le&nbsp;:&nbsp;" + LI_EnToFr_lastUpdateDateTime;
  };
  document.getElementById("newFlagFr").checked = ((flag == 2) || (flag == 3));
  document.getElementById("newFlagEn").checked = ((flag == 1) || (flag == 3));
  document.getElementById("newTypeE2F").checked = (extLI_F2E == -1);
  document.getElementById("newTypeF2E").checked = (extLI_E2F == -1);
  document.getElementById("newTypeBoth").checked = ((extLI_E2F != -1) && (extLI_F2E != -1));
  if(extLI_E2F != -1){
    document.getElementById("optNewRestLI_E2F_" + extLI_E2F).selected = true;
  };
  if(extLI_F2E != -1){
    document.getElementById("optNewRestLI_F2E_" + extLI_F2E).selected = true;
  };
  if(extLI_E2F == -1){
    gestionDispMod("FrToEn");
  }
  else{
    if(extLI_F2E == -1){
      gestionDispMod("EnToFr");
    }
    else{
      gestionDispMod("both");
    };
  };
  document.getElementById("divModDef").style.display = "block";
  window.location = "#ancreModDef";
}

//gere la suppression de la definition
function gestionDelDef(numDef){
  var nbDefTotalAvantSupp = xmlDocRes.getElementsByTagName("english").length;
  var defNodeToDel;
  var msgConfSuppr = "Confirmez-vous la suppression de la d\xE9finition ?";

  if(!confirm(msgConfSuppr)) return;

  if((document.getElementById("divModDef").style.display != "none") && (numDef == document.getElementById("numDefForMod").value)){
    document.getElementById("divModDef").style.display = "none";
  };
  if(window.XMLHttpRequest){
    xhr = new XMLHttpRequest();
  }
  else if(window.ActiveXObject){
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
  }
  else{
    alert("Votre navigateur n'est pas compatible avec AJAX");
  };
  if(xhr){
    xhr.onreadystatechange = function(){
      if(xhr.readyState == 4 && xhr.status == 200){
        if((numPage == calcNbPages()) && ((nbDefTotalAvantSupp % nbDefParPage) == 1)){
          numPage--;
        };
        defNodeToDel = xmlDocRes.evaluate('./definition[@num="' + numDef + '"]', xmlDocRes.documentElement, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
        xmlDocRes.documentElement.removeChild(defNodeToDel);
        majParaNbFoundDef();
        majTabDef();
        alert("La d\xE9finition a bien \xE9t\xE9 supprim\xE9e");
      };
    };
    xhr.open("POST", "./deleteDefAjax.php?<?PHP echo(session_name()."=".session_id()) ?>", true);
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
    xhr.send("numDef=" + numDef);
  };
}
//]]>
    </script>
  </head>
  <body onload="gestionOnload()">
<?PHP
$filename = "searchDef.php";
$cheminAbsInitial = "vocab/common";
include("../includes/menu.inc.php");
?>
    <div id="main">
<?PHP
if(isset($_SESSION["login"])){
?>
      <table border="0" width="100%">
        <tr>
          <td><h2>MOTEUR DE RECHERCHE</h2></td>
        </tr>
      </table>
      <br />
<?PHP
  if(!isset($_SESSION["idCurrentBase"])){
    echo("Vous devez s&eacute;lectionner une base.<br />\n");
  }
  else{
?>
      <form name="formSearchDef" action="javascript:void%200" accept-charset="utf-8" onsubmit="gestionSearch(this.searchedStr.value, document.getElementById('typeSearchOnlyEn').checked, document.getElementById('typeSearchOnlyFr').checked, this.isCaseSensitive.checked, this.onlyFlagTerms.checked);return false">
        <table border="0" width="100%">
          <colgroup width="45%" span="1" align="right"></colgroup>
          <colgroup width="55%" span="1" align="left"></colgroup>
          <tr>
            <td>
              <label>Cha&icirc;ne de caract&egrave;res recherch&eacute;e&nbsp;:&nbsp;</label>
            </td>
            <td>
              <input id="searchedStr" type="text" name="searchedStr" size="40" maxlength="<?PHP echo MAXLENGTH_SEARCHED_STR ?>" />
            </td>
          </tr>
          <tr>
            <td>
            </td>
            <td>
              * est le joker (il remplace n'importe quelle cha&icirc;ne de caract&egrave;res)
              <br />&nbsp;
            </td>
          </tr>
          <tr>
            <td>
              <label>Rechercher dans&nbsp;:&nbsp;</label>
            </td>
            <td>
              <input id="typeSearchOnlyEn" type="radio" name="typeSearch" value="onlyEn" /><label>les termes anglais uniquement</label>
              <br />
              <input id="typeSearchOnlyFr" type="radio" name="typeSearch" value="onlyFr" /><label>les termes fran&ccedil;ais uniquement</label>
              <br />
              <input id="typeSearchBoth" type="radio" name="typeSearch" value="both" checked="checked" /><label>tous les termes</label>
            </td>
          </tr>
          <tr>
            <td>
            </td>
            <td>
              &nbsp;<br />
              <input id="isCaseSensitive" type="checkbox" name="isCaseSensitive" value="true" />
              <label>Case sensitive</label>
            </td>
          </tr>
          <tr>
            <td>
            </td>
            <td>
              &nbsp;<br />
              <input id="onlyFlagTerms" type="checkbox" name="onlyFlagTerms" value="true" />
              <label>Uniquement les termes marqu&eacute;s</label>
            </td>
          </tr>
          <tr>
            <td colspan="2" align="center">
              &nbsp;<br />
              <button type="submit">LANCER LA RECHERCHE</button>
            </td>
          </tr>
        </table>
      </form>
      <br />
      <a id="ancreSearchRes"></a>
      <div id="divSearchRes" style="display:none">
        <fieldset>
          <legend><b>R&eacute;sultat de la recherche</b></legend>
          <p id="nbFoundDef"></p>
          <table id="tableSearchRes" border="1" width="100%">
            <thead>
              <tr style="background-color:darkgray">
                <th>FRENCH</th>
                <th>ENGLISH</th>
                <th>F2E</th>
                <th>E2F</th>
                <th>&nbsp;</th>
                <th>&nbsp;</th>
              </tr>
            </thead>
            <tbody id="tbodySearchRes">
            </tbody>
          </table>
          <table border="0" width="100%">
            <tr>
              <td id="navigPrec" class="style2">
                <button type="button" onclick="numPage=1;majTabDef()">&nbsp;&nbsp;&nbsp;<<&nbsp;&nbsp;&nbsp;</button>
                &nbsp;
                <button type="button" onclick="numPage--;majTabDef()">&nbsp;&nbsp;&nbsp;<&nbsp;&nbsp;&nbsp;</button>
              </td>
              <td id="navigSuiv" class="style1">
                <button type="button" onclick="numPage++;majTabDef()">&nbsp;&nbsp;&nbsp;>&nbsp;&nbsp;&nbsp;</button>
                &nbsp;
                <button type="button" onclick="numPage=calcNbPages();majTabDef()">&nbsp;&nbsp;&nbsp;>>&nbsp;&nbsp;&nbsp;</button>
              </td>
            </tr>
          </table>
        </fieldset>
      </div>
      <br />
      <a id="ancreModDef"></a>
      <div id="divModDef" style="display:none">
        <fieldset>
          <legend><b>Modification d'une d&eacute;finition</b></legend>
          Num&eacute;ro&nbsp;:&nbsp;<span id="spanModNumDef"></span><br />
          Cr&eacute;&eacute;e le&nbsp;:&nbsp;<span id="spanModDefCreationDateTime"></span><br /><br />
          Tous les tags <br /> sont automatiquement supprim&eacute;s.
          <form id="formModDef" name="formModDef" action="javascript:void%200" accept-charset="utf-8" onsubmit="gestionModDef(this.numDefForMod.value, this.newEnglish.value, this.newFrench.value, document.getElementById('newFlagEn').checked, document.getElementById('newFlagFr').checked, document.getElementById('newTypeE2F').checked, document.getElementById('newTypeF2E').checked, this.newRestLI_E2F.value, this.newRestLI_F2E.value);return false">
            <input id="numDefForMod" name="numDefForMod" type="hidden" />
            <table border="0" width="100%">
              <colgroup width="20%" span="1" align="right"></colgroup>
              <colgroup width="80%" span="1" align="left"></colgroup>
              <tr>
                <td>
                  <label>Fran&ccedil;ais&nbsp;:&nbsp;</label><br />
                  <input id="newFlagFr" type="checkbox" name="newFlagFr" value="vrai" />
                  <label>flag&nbsp;</label><br />&nbsp;<br />&nbsp;
                </td>
                <td>
                  <textarea id="newFrench" name="newFrench" cols="65" rows="4"></textarea>
                  <br />
                  <span id="spanModLI_FrToEn_lastUpdateDateTime"></span>
                  <br />&nbsp;
                </td>
              </tr>
              <tr>
                <td>
                  <label>Anglais&nbsp;:&nbsp;</label><br />
                  <input id="newFlagEn" type="checkbox" name="newFlagEn" value="vrai" />
                  <label>flag&nbsp;</label><br />&nbsp;<br />&nbsp;
                </td>
                <td>
                  <textarea id="newEnglish" name="newEnglish" cols="65" rows="4"></textarea>
                  <br />
                  <span id="spanModLI_EnToFr_lastUpdateDateTime"></span>
                  <br />&nbsp;
                </td>
              </tr>
              <tr>
                <td><label>Type&nbsp;:&nbsp;</label></td>
                <td>
                  <input id="newTypeF2E" type="radio" name="newType" value="F2E" onclick="gestionDispMod('FrToEn')" /><label onclick="document.getElementById('newTypeF2E').checked=true;gestionDispMod('FrToEn')">FrToEn</label><br />
                  <input id="newTypeE2F" type="radio" name="newType" value="E2F" onclick="gestionDispMod('EnToFr')" /><label onclick="document.getElementById('newTypeE2F').checked=true;gestionDispMod('EnToFr')">EnToFr</label><br />
                  <input id="newTypeBoth" type="radio" name="newType" value="both" onclick="gestionDispMod('both')" /><label onclick="document.getElementById('newTypeBoth').checked=true;gestionDispMod('both')">both</label>
                </td>
              </tr>
              <tr>
                <td><label>LearningIndex FrToEn&nbsp;:&nbsp;</label></td>
                <td>
                  <select id="newRestLI_F2E" name="newRestLI_F2E" size="1">
<?PHP
    for($i = 0; $i <= MAX_LEARNING_INDEX; $i++){
      echo("<option id=\"optNewRestLI_F2E_".$i."\" value=\"".$i."\">".$i."</option>\n");
    };
?>
                  </select>
                </td>
              </tr>
              <tr>
                <td><label>LearningIndex EnToFr&nbsp;:&nbsp;</label></td>
                <td>
                  <select id="newRestLI_E2F" name="newRestLI_E2F" size="1">
<?PHP
    for($i = 0; $i <= MAX_LEARNING_INDEX; $i++){
      echo("<option id=\"optNewRestLI_E2F_".$i."\" value=\"".$i."\">".$i."</option>\n");
    };
?>
                  </select>
                </td>
              </tr>
              <tr>
                <td><button type="submit">Enregistrer</button></td>
                <td></td>
              </tr>
            </table>
          </form>
        </fieldset>
      </div>
<?PHP
  };
}
else{
  echo(MSG_ERREUR_PROTECTED_ZONE);
  $_SESSION = array();
  session_destroy();
};
echo(DISP_ON_ALL_WIDTH);
?>
    </div>
  </body>
</html>
searchDefRes.php :
<?PHP
include_once("../includes/definitions.inc.php");
include_once("../includes/common.inc.php");
include_once("../includes/gestionFichiersTxtParam.inc.php");
include_once("../includes/gestionParamConnServMysql.inc.php");
include_once("../includes/gestionMysql.inc.php");

function myStrPos($haystack, $needle, $isCaseSensitive){
  if($isCaseSensitive){
    return strpos($haystack, $needle);
  }
  else{
    return stripos($haystack, $needle);
  };
}

//renvoie true si la chaîne de caractères $haystack contient la chaîne de caractères $needle
//dans $needle, le caractère * correspond au joker
//la recherche est (resp. n'est pas) sensible à la casse si $isCaseSensitive est égal à true (resp. false)
function myStrMatchAux($haystack, $needle, $isCaseSensitive){
  if($needle == "") return true;
  if(strpos($needle, "*") === false) return (myStrPos($haystack, $needle, $isCaseSensitive) !== false);
  if($needle[0] == "*") return myStrMatchAux($haystack, substr($needle, 1), $isCaseSensitive);
  $tabNeedle = explode("*", $needle, 2);
  $posFirstNeedleInHaystack = myStrPos($haystack, $tabNeedle[0], $isCaseSensitive);
  if($posFirstNeedleInHaystack === false) return false;
  return myStrMatchAux(substr($haystack, $posFirstNeedleInHaystack + strlen($tabNeedle[0])), $tabNeedle[1], $isCaseSensitive);
}

//renvoie true si la chaîne de caractères $haystack contient la chaîne de caractères $needle
//dans $haystack, les "<br />" sont considérés comme des sauts de ligne
//dans $needle, le caractère * correspond au joker
//la recherche est (resp. n'est pas) sensible à la casse si $isCaseSensitive est égal à true (resp. false)
function myStrMatch($haystack, $needle, $isCaseSensitive){
  $haystackArray = explode("<br />", $haystack);
  foreach($haystackArray as $line){
    if(myStrMatchAux($line, $needle, $isCaseSensitive)) return true;
  };
}

session_name(NOM_SESSION_VOCAB);
session_start();

if(isset($_SESSION["login"])){
  header('Content-Type:text/xml; charset=UTF-8');
  echo("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
  echo("<base>");
  $searchedStr = $_POST["searchedStr"];
  $typeSearch = $_POST["typeSearch"];
  $isCaseSensitive = ($_POST["isCaseSensitive"] == "true");
  $onlyFlagTerms = ($_POST["onlyFlagTerms"] == "true");
  $link = connectSelectMysqlVocab("../../private/paramConnServMysql.txt", NAME_BD);
  $query = "SELECT num, english, french, learningIndexEnToFr, learningIndexFrToEn, defCreationDateTime, LI_EnToFr_lastUpdateDateTime, LI_FrToEn_lastUpdateDateTime, flag 
            FROM save_def_".$_SESSION["typeCurrentBase"]." 
            WHERE idBase = ".$_SESSION["idCurrentBase"];
  if($onlyFlagTerms){
    switch($typeSearch){
      case "onlyEn" :
        $query .= " AND flag IN (1, 3)";
        break;
      case "onlyFr" :
        $query .= " AND flag IN (2, 3)";
        break;
      case "both" :
        $query .= " AND flag <> 0";
        break;
    };
  };
  $query .= " ORDER BY num ASC";
  $res = execQueryMysql($query, $link);
  while($ref = mysql_fetch_assoc($res)){
    if((($typeSearch == "both" || $typeSearch == "onlyEn") && myStrMatch(antiMyXmlEntities($ref["english"]), $searchedStr, $isCaseSensitive)) || (($typeSearch == "both" || $typeSearch == "onlyFr") && myStrMatch(antiMyXmlEntities($ref["french"]), $searchedStr, $isCaseSensitive))){
      echo("<definition num=\"".$ref["num"]."\">");
      echo("<english>".strtr($ref["english"], array("<br />" => "<br />"))."</english>");
      echo("<french>".strtr($ref["french"], array("<br />" => "<br />"))."</french>");
      echo("<extLI_E2F>".$ref["learningIndexEnToFr"]."</extLI_E2F>");
      echo("<extLI_F2E>".$ref["learningIndexFrToEn"]."</extLI_F2E>");
      echo("<defCreationDateTime>".date("d-m-y, H:i:s", strtotime($ref["defCreationDateTime"]))."</defCreationDateTime>");
      if($ref["LI_EnToFr_lastUpdateDateTime"] == NULL){
        echo("<LI_EnToFr_lastUpdateDateTime>NULL</LI_EnToFr_lastUpdateDateTime>");
      }
      else{
        echo("<LI_EnToFr_lastUpdateDateTime>".date("d-m-y, H:i:s", strtotime($ref["LI_EnToFr_lastUpdateDateTime"]))."</LI_EnToFr_lastUpdateDateTime>");
      };
      if($ref["LI_FrToEn_lastUpdateDateTime"] == NULL){
        echo("<LI_FrToEn_lastUpdateDateTime>NULL</LI_FrToEn_lastUpdateDateTime>");
      }
      else{
        echo("<LI_FrToEn_lastUpdateDateTime>".date("d-m-y, H:i:s", strtotime($ref["LI_FrToEn_lastUpdateDateTime"]))."</LI_FrToEn_lastUpdateDateTime>");
      };
      echo("<flag>".$ref["flag"]."</flag>");
      echo("</definition>");
    };
  };
  mysql_free_result($res);
  echo("</base>");
}
else{
  echo(MSG_ERREUR_PROTECTED_ZONE);
  $_SESSION = array();
  session_destroy();
};
?>
@+
dix2

panneau reductible

par Sophie13 » 18 déc. 2011, 20:08

Bonjour,
Je vous explique mon petit problème:
J'ai une page qui affiche des fiches descriptives sur des produits (qui sont alimentés depuis une table) et je souhaiterais avoir que le nom du produit affiché et quand je clique dessus un panneau s'ouvre vers le bas et affiche le descriptif.

voici mon code:

Code : Tout sélectionner

<tr><td bgcolore=\"#0067A6\"><b>$Nom_produit</b></td></tr> <tr><td>Référence: $Id_produit</td></tr> <tr> <td align=\"center\"><img src=\"./../image/images/$Nom_produit/1.jpg\"/></td> </tr> début du panneau réductible <tr><td></td></tr> <tr><td><b><u>Adresse:</b></u></td></tr>\n <tr><td>$Adresse_entrepot $Code_postal_ $Ville</td></tr> <tr><td></td></tr> <tr><td></td></tr> <tr><td><b><u>Déscription:</b></u> </a></td>\n <tr><td></td></tr> <tr><td>$Descriptif_produit</td></tr> <tr><td></td></tr> <tr><td bgcolor=#FFFFFF></td></tr> <tr><td></td></tr> <tr><td></td></tr> </tr>\n"; fin de panneau réductible
Si quelqu'un peut m'aider, car la ça fait 15 jours que je m'arrache les cheveux :/