Proxounet | Bonjour, j'ai déja utilisé prototype dans un select, à l'aide d'un onChange, ca marchait parfaitement.
Je reproduit exactement la même chose, mais cette fois, impossible de le faire marcher.
j'ai trouvé cette errreur grace a un debuggueur :
Code :
- element has no properties
- [Break on this error] var method = element.tagName.toLowerCase();
|
Voila la page html :
Citation :
<?php
$db = mysql_connect();
mysql_select_db();
$un_id_membre = $_COOKIE['un_id_membre'];
if (!empty($_POST)) {
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Formulaire</title>
<script type="text/javascript" src="javascripts/prototype.js"></script>
<script type="text/javascript" src="javascripts/validation.js"></script>
<script type="text/javascript" src="javascripts/ajax.js"></script>
<link href="styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
if (empty($_POST)) {
echo '
<form action="#" method="post" id="ajout_identite">
<select id="ca_id_arbre" onChange="changement_arbre()">
<option value=""></option>
<option value="-1">Informations publiques sur ce site</option>
<option value="0">Informations communes à mes arbres</option>
';
$sql = 'SELECT * FROM arbres WHERE id_membre=\''.$un_id_membre.'\'';
$dem = mysql_query($sql);
while ($donnees = mysql_fetch_array($dem)) {
echo '<option value="'.$donnees['id_arbre'].'">'.$donnees['nom'].'</option>';
}
echo '
</select><br />
<div id="ca_resultat"></div>
<br />
Nom ou partie du nom : <input name="nom" type="text" id="ri_nom" onkeypress="refuserToucheEntree(event,recherche_identite,\'\')" /><br />
Prénom ou partie du prénom : <input name="prenom" type="text" id="ri_prenom" onkeypress="refuserToucheEntree(event,recherche_identite,\'\')" /><br />
<div class="rechercher_form_identite" onClick="recherche_identite(\'\')">Vérifier que cette personne n\'est pas déjà enregistrée</div>
<div id="ri_resultat">Merci de renseigner un nom et un prénom.<br /></div>
<br />
<em>Les parents doivent déjà être enregistrées</em><br />
<br />
Premier parent <em>(père)</em> :<br />
Nom ou partie du nom : <input type="text" id="ri_nom_parent1" onkeypress="refuserToucheEntree(event,recherche_identite,\'_parent1\')" /><br />
Prénom ou partie du prénom : <input type="text" id="ri_prenom_parent1" onkeypress="refuserToucheEntree(event,recherche_identite,\'_parent1\')" /><br />
<div class="rechercher_form_identite" onClick="recherche_identite(\'_parent1\')">Rechercher</div>
<div id="ri_parent1_resultat">Merci de renseigner un nom et un prénom.<br /></div>
<br />
Second parent <em>(mère)</em> :<br />
Nom ou partie du nom : <input type="text" id="ri_nom_parent2" onkeypress="refuserToucheEntree(event,recherche_identite,\'_parent2\')" /><br />
Prénom ou partie du prénom : <input type="text" id="ri_prenom_parent2" onkeypress="refuserToucheEntree(event,recherche_identite,\'_parent2\')" /><br />
<div class="rechercher_form_identite" onClick="recherche_identite(\'_parent2\')">Rechercher</div>
<div id="ri_parent2_resultat">Merci de renseigner un nom et un prénom.<br /></div>
<br />
Naissance :<br />
Date (sous la forme AAAA-MM-JJ) : <input name="date_naissance" type="text" class="validate-date" id="date_naissance" /><br />
Pays : <select name="pays_naissance" id="rl_pays_naissance" onChange="renseignement_lieu(\'naissance\')">
<option value=""></option>
';
$sql = 'SELECT * FROM pays ORDER BY fr';
$dem = mysql_query($sql);
while ($donnees = mysql_fetch_array($dem)) {
echo '<option value="'.$donnees['code'].'">'.$donnees['fr'].'</option>';
}
echo '
</select><br />
<div id="rl_naissance_resultat"></div>
<br />
Décès (<a href="javascript:visibilite(\'deces\',\'Afficher\',\'Masquer\');" id="decesLien">Afficher</a> )<br />
<div id="deces" style="display:none;">
Date (sous la forme AAAA-MM-JJ) : <input name="date_deces" type="text" class="validate-date" id="date_deces" /><br />
Pays : <select name="pays_deces" id="rl_pays_deces" onChange="renseignement_lieu(\'deces\')">
<option value=""></option>
';
$sql = 'SELECT * FROM pays ORDER BY fr';
$dem = mysql_query($sql);
while ($donnees = mysql_fetch_array($dem)) {
echo '<option value="'.$donnees['code'].'">'.$donnees['fr'].'</option>';
}
echo '
</select><br />
<div id="rl_deces_resultat"></div>
</div>
<br />
<input name="Submit" type="submit" value="Envoyer" />
</form>
<script type="text/javascript">
new Validation(\'ajout_identite\');
</script>
';
}
mysql_close($db);
?>
</body>
</html>
|
C'est le premier cas ou ca ne marche pas.
Voila le javascript
Citation :
function refuserToucheEntree(event,fonction,parametre){
if(!event && window.event){
event = window.event;
}
if(event.keyCode == 13) {
event.returnValue = false;
event.cancelBubble = true;
fonction(parametre);
}
if(event.which == 13){
event.preventDefault();
event.stopPropagation();
}
}
function visibilite(thingId,txtAff,txtMasque) {
var targetElement; var targetElementLink;
targetElement = document.getElementById(thingId) ;
targetElementLink = document.getElementById(thingId+'Lien');
if (targetElement.style.display == "none" ) {
targetElement.style.display = "" ;
targetElementLink.innerHTML = txtMasque ;
} else {
targetElement.style.display = "none" ;
targetElementLink.innerHTML = txtAff ;
}
}
function changement_arbre() {
var url = 'php/changement_abre.php';
var pars = 'id_arbre='+escape($F('ca_id_abre'));
var target = 'ca_resultat';
var myAjax = new Ajax.Updater(target, url, {method: 'get', parameters: pars});
recherche_identite('');
recherche_identite('_parent1');
recherche_identite('_parent2');
}
function recherche_identite(rang) {
var url = 'php/recherche_identite.php';
var pars = 'ri_nom='+escape($F('ri_nom'+rang))+'&ri_prenom='+escape($F('ri_prenom'+rang))+'&ri_rang='+rang;
var target = 'ri'+rang+'_resultat';
var myAjax = new Ajax.Updater(target, url, {method: 'get', parameters: pars});
}
function recherche_cp_fr(evenement) {
var url = 'php/recherche_cp_fr.php';
var pars = 'rcp_cp='+escape($F('rcp_cp'))+'&evenement='+evenement;
var target = 'rcp_resultat';
var myAjax = new Ajax.Updater(target, url, {method: 'get', parameters: pars});
}
function recherche_cp_be(evenement) {
var url = 'php/recherche_cp_be.php';
var pars = 'rcp_cp='+escape($F('rcp_cp'))+'&evenement='+evenement;
var target = 'rcp_resultat';
var myAjax = new Ajax.Updater(target, url, {method: 'get', parameters: pars});
}
function renseignement_lieu(evenement) {
var url = 'php/renseignement_lieu.php';
var pars = 'pays='+escape($F('rl_pays_'+evenement))+'&evenement='+evenement;
var target = 'rl_'+evenement+'_resultat';
var myAjax = new Ajax.Updater(target, url, {method: 'get', parameters: pars});
}
|
Merci beaucoup Message édité par Proxounet le 03-01-2008 à 02:59:30
|