Problème javascript

Résolu
Bonjour,
je vous met le code, et je vous explique mon problème :p

<html>
<?
include "../config/connexion.php";
?>
<head>
<script type="text/javascript">
function ajax_test(champ)
{
if (champ.options[champ.selectedIndex].value != '')
document.getElementById('id_').innerHTML=champ.options[champ.selectedIndex].value;
else
document.getElementById('id_').innerHTML='';
}
</script>

</head>
<body>

<form action="test.php" method="post" name="facture" target="">
<table>
<select name="document_client" onchange="ajax_test(this)">
<option value="">Choisissez le document voulu</option>';
<?
$id_client=22;
$date_jour=date("Y-m-d");
$sql_docu='SELECT * FROM DOCUMENT WHERE ID_CLIENT="'.$id_client.'" AND DATE_ECHEANCE <= "'.$date_jour.'"';
$query_docu=mysql_query($sql_docu);
while($info_docu=mysql_fetch_array($query_docu)){
$ID_DOCUMENT=$info_docu[0];
$DATE_DOCUMENT=$info_docu[9];
$ID_TYPES=$info_docu[12];
$sql_type='SELECT * FROM TYPE WHERE ID_TYPE="'.$ID_TYPES.'"';
$rs_doc_type=mysql_query($sql_type);
$affich_doc_type=mysql_fetch_array($rs_doc_type);
?>
<option value="<?php echo $ID_DOCUMENT ?>"><?php echo $affich_doc_type[1]." <|> ".$DATE_DOCUMENT ?></option>
<?php
}
?>
</select>

</table>
<div="id_">

</div>
</form>
</body>
</html>

alors voila, le principe est que lorsque je sélectionne quelque chose dans ma liste déroulante, le numéro est sensé apparaitre dans le div id_ . Problème.. ca ne le fait pas. et j'avoue ne pas voir pourquoi. si quelqu'un a une idée :)
Configuration: Windows XP
Firefox 2.0.0.14

1 réponse

  1. hello

    tu t'est torturé un peu l'esprit pour rien la

    document.getElementById('id_').innerHTML=champ.options[champ.selectedIndex].value;

    pour recuperer l'option selectionnée d'un champ Select il suffit de passer sa valeur directement à ta fonction

    <select name="document_client" onchange="ajax_test(this.value);">

    <script type="text/javascript">
    function ajax_test(champ)
    {
    if (champ != '')
    {
    document.getElementById('id_').innerHTML=champ;
    }
    else
    {
    document.getElementById('id_').innerHTML='';
    }
    }
    </script>
    0
    1. ca ne marche pas :(
      je comprend pas.. pourtant, javascript est bien activé dans le navigateur..
      sur d'autre projet, mes fonctions marchent, mais la.. rien a faire ca ne veut pas.
      y a t'il une autre solution ?
      0
    2. @halasterj'avais pas fais attention, change également ton div

      <div="id_">

      </div>

      en

      <div id="id_">

      </div>
      0
    3. @Mimisteomg....
      quelle erreur stupide -_- merci beaucoup, la ca fonctionne..
      ya des moment je me demande si j'ai bien les yeux en face des trous :p
      0
    4. @Mimistesinon, j'aurai une autre question, mais c'est en utilisant ajax.
      bon pour l'exemple ca ne sera pas forcément adapté, mais c'est surtout pour le principe.
      voici mes pages, puis j'explique :p

      page test.php

      <html>
      <?
      include "../config/connexion.php";
      ?>
      <head>
      <script language="Javascript" src="ajax.js"/>

      </head>
      <body>

      <form action="ajax_test.php" method="post" name="facture" target="">
      <table>
      <select name="document_client" >
      <option value="">Choisissez le document voulu</option>';
      <?
      $id_client=22;
      $date_jour=date("Y-m-d");
      $sql_docu='SELECT * FROM DOCUMENT WHERE ID_CLIENT="'.$id_client.'" AND DATE_ECHEANCE <= "'.$date_jour.'"';
      $query_docu=mysql_query($sql_docu);
      while($info_docu=mysql_fetch_array($query_docu)){
      $ID_DOCUMENT=$info_docu[0];
      $DATE_DOCUMENT=$info_docu[9]
      $ID_TYPES=$info_docu[12];
      $sql_type='SELECT * FROM TYPE WHERE ID_TYPE="'.$ID_TYPES.'"';
      $rs_doc_type=mysql_query($sql_type);
      $affich_doc_type=mysql_fetch_array($rs_doc_type);
      ?>
      <option value="<?php echo $ID_DOCUMENT ?>"onclick="ajax_test(<? echo $ID_DOCUMENT; ?>)" ><?php echo $affich_doc_type[1]." <|> ".$DATE_DOCUMENT ?></option>
      <?php
      }
      echo "</select>";
      ?>
      </table>
      <div="id_">
      </div>
      </form>
      </body>
      </html>

      ____________________________________________________
      page ajax_test.php

      <?
      $test=$_POST['num_doc'];
      echo test;
      ?>

      ____________________________________________________

      page ajax.js

      function get_Xhr()
      {
      if(window.XMLHttpRequest)
      {
      xhr = new XMLHttpRequest();
      }
      else if(window.ActiveXOject)
      {
      try
      {
      xhr = new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch(e)
      {
      try
      {
      xhr = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(el)
      {
      xhr = null;
      }
      }
      }
      else
      {
      alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest\nVeuillez le mettre à jour");
      }
      return xhr;
      }

      function ajax_test(fam6)
      {
      // Creation de l'objet XMLHttpRequest
      get_Xhr();
      xhr.onreadystatechange = function()
      {
      if(xhr.readyState == 4 && xhr.status == 200)
      {
      document.getElementById('id_').innerHTML = xhr.responseText;
      }
      }

      xhr.open("POST",'ajax_test.php',true);
      xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

      xhr.send("num_doc="+fam6);
      }
      ______________________________________

      voila, donc le principe est le meme, pouvoir afficher le contenu de la page ajax_test.php dans le <div id="id_">
      normalement avec onclick ca fonctionne, mais sinan je peux utiliser onchange comme dans l'autre exemple..
      problème. ca ne fait rien :x
      0
    5. @halasteren fait, oubli, j'ai trouvé mon erreur :x
      0