Problème javascript

Résolu/Fermé
halaster - 4 juin 2008 à 09:41
Xil Messages postés 350 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 11 juin 2009 - 4 juin 2008 à 12:37
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 :)

1 réponse

Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
4 juin 2008 à 09:59
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
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
Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206 > halaster
4 juin 2008 à 10:22
j'avais pas fais attention, change également ton div

<div="id_">

</div>

en

<div id="id_">

</div>
0
halaster > Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016
4 juin 2008 à 10:29
omg....
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
halaster > Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016
4 juin 2008 à 10:49
sinon, 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
halaster > halaster
4 juin 2008 à 10:51
en fait, oubli, j'ai trouvé mon erreur :x
0