erreur javascript "objet attendu" - HTML/CSS - Programmation
Marsh Posté le 15-07-2008 à 10:32:08
Citation : il me met une erreur javacript me disant "objet attendu" et je ne sais pas d'ou cela vient. |
Il doit y avoir un numéro de ligne avec ce message.
Montre nous plutot le code Html généré (et pas le source Php)
Marsh Posté le 15-07-2008 à 10:36:54
oui mais le truc, c'est que mon erreur pointe sur un "<link rel="stylesheet" href="./styles/synop.css" type="text/css" />", rien a voir avec mon javascript et je travaille sur plusieurs pages, page php, page html et une 3eme php qui appel mon 2eme select (qui est dans mon premier post)
Marsh Posté le 15-07-2008 à 11:01:14
voici mon code html :
<SCRIPT Language = "Javascript">
function file(fichier)
{
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP" );
else
return(false);
xhr_object.open("GET", fichier, false);
xhr_object.send(null);
if(xhr_object.readyState == 4) return(xhr_object.responseText);
else return(false);
}
function charger_variables(id,syn_id)
{
texte = file('./Charger_variables.php?id='+escape( id )+'&syn_id='+syn_id );
document.getElementById('connex').innerHTML = texte;
}
</script>
<html>
<head>
<link rel="stylesheet" href="./styles/synop.css" type="text/css" />
<link rel="icon" href="./images/aic.ico" type="image/x-icon">
<link rel="SHORTCUT ICON" href="./images/aic.ico" type="image/x-icon">
<title> Gestion des synoptiques </title>
</head>
<body>
<form name="add" action="" method="POST">
<table width="100%" height="10%" border="1" class="entete"> <tr>
<td>
Choix de connexion :
</td>
<td width="40%" align="center">
<select name="connexion" STYLE='width:150' id="lst_modele" onChange="charger_variables(this.value,11)">
<option class='orange2' value="0"><type de connexion></option>
<option class='orange1' value="1">spc00002 - wwuser</option><option class='orange2' value="3">localhost - root</option>
</select>
</td>
<td align="center">
<a href="" target="_parent">Ajouter une connexion</a>
</td>
</tr>
<tr>
<td>
Choix de variables :
</td>
<td align="center" height="20%" id="connex">
</td>
<td align="center">
<a href="" target="_parent">Ajouter une variable</a>
</td>
</tr>
<tr>
<td colspan="3" align="center">
Liste des variables sélectionnées :
</td>
</tr>
<tr bgcolor="#D0FFFF">
<td align="center" width="100%" height="30%" colspan="3">
<div id='selection'></div>
- vsrc_nom -- description -- <img src="./images/supp.png">
</td>
</tr>
<tr>
<td colspan="3" align="center">
<a href="" target="_parent">Créer les variables</a>
</td>
</tr>
</table>
<table class="entete" width="100%" height="7%">
<tr>
<td>
<td width="50%" align="center">
<a href="" target="_parent">Valider</a>
</td>
<td width="50%" align="center">
<a href="" target="_parent">Retour</a>
</td>
</tr>
</table>
</form>
</body>
</html>
et mon script précedent correpond au "Charger_variables.php"
Marsh Posté le 15-07-2008 à 11:53:37
Code :
|
L'élément select n'a pas de value.
Dans le cas des select simples, tu peux accéder à l'option choisie via l'attribut selectedindex
essaye ça :
Code :
|
Marsh Posté le 16-07-2008 à 00:02:18
euh si ca marche tres bien le onchange prend la value de l option choisie
par contre justre pour la forme c est
<script type="text/javascript">
et ca doit etre a l interieur du header
pareil pour ta css en echo
pour ton probleme c est qu une fonction xhr ne retourne rien donc file est vide, donc texte est vide donc tu fais un undefined sur ton innerHTML
tu dois definir une fonction qui se declenchera quand ta requete sera terminée (au moment ou le onchange se produit ta requete n a pas encore été éxécutée)
c est cette ligne qui est fausse
if(xhr_object.readyState == 4) return(xhr_object.responseText);
au moment de la requete elle est a zero (ou un je sais plus ) et tu n as personne pour ecouter quand ca change (d ou la fonction sur le onreadystatechange dans mon exemple)
edit:
oops le lien qui va bien
http://www.xul.fr/xml-ajax.html#ajax-lire-texte
Marsh Posté le 15-07-2008 à 10:14:12
Bonjour,
actuellement, je bosse en php/javascript/html. j'ai donc tout d'abord ma page avec un select qui, dès qu'un element est coché, affiche un 2eme select en dessous. ce que je veux faire ensuite, c'est qu'a partir de ce 2eme select, afficher en dessous les elements selectionné a l'aide du onChange.
pour cela, j'utilise une fonction ajax qui est file(fichier) et que j'ai déja utilisé pour passer du 1er au 2eme select cependant, à present, il me met une erreur javacript me disant "objet attendu" et je ne sais pas d'ou cela vient. voici le code :
<?
include("fonctions.php" );
header("Content-type: text/html; charset=iso-8859-15" );
echo "<link rel='stylesheet' href='./styles/flu.css' type='text/css' />";
?>
<SCRIPT Language = "Javascript">
function file(fichier)
{
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP" );
else
return(false);
xhr_object.open("GET", fichier, false);
xhr_object.send(null);
if(xhr_object.readyState == 4) return(xhr_object.responseText);
else return(false);
}
function selection_variables(id,syn_id)
{
texte = file('./selection_variables.php?id='+escape( id ) );
window.parent.opener.parent='CreationCompo.php?syn_id='+syn_id;
document.getElementById('selection').innerHTML = texte;
}
</script>
<?
$id = $_GET['id'];
$syn_id = $_GET['syn_id'];
//echo $syn_id;
$variables = Requete_db("SELECT vsrc_id, vsrc_nom FROM ts_vsrc where vsrc_src_id=$id","graphes" );
echo "<select name='variables' STYLE='width:250' id='lst_variable' onChange='selection_variables(this.value,".$syn_id." )' size='5'>";
foreach($variables as $value)
{
$vsrc_id = $value[0];
$vsrc_nom = $value[1];
echo "<option class='orange2' value='$value[0]' label='$value[1]'></option>";
}
echo "</select>";
?>
merci de vos réponses
Message édité par capri36 le 15-07-2008 à 10:21:47