11550 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Le but : ajouter une ligne dans un tableau suite à un clic sur un bouton "créer".

Je crée une ligne "masquée" lors de l'affichage de mon tableau. Elle n'apparait que sur le clic du bouton créer, ainsi qu'1 bouton Valider et 1 Annuler. Ce clic rend aussi actif 2 autres boutons Valider et Annuler (pour laisser le choix à l'utilisateur....).
Je donne le focus à la 1ère zone.. et là FF continue son chemin et je ne peux rien saisir, alors qu'IE me laisse créer et reprends la main sur clic d'un des boutons!

Voici les codes :

Html

<table>
<tr style="display:none" id="lign[<?php echo $n ?>]">
                	<td width="5%" ></td>
                	<td width="15%" ><input type="text" name="cod" size="15" value="" id ="co[<?php echo $n ?>]"></td>
                	<td width="65%" ><input type="text" name="lib" value=""></td>
                	<td width="15%" ><input type="text" name="niv" value=""></td>
                    <td width="5%" class="modif" align="right" style="border:none" id="val[<?php echo $n?>]"><button> <img src="images/valider1.png"/> </button></td>
                    <td width="5%" class="modif" align="right" style="border:none" id="ann[<?php echo $n?>]"><button> <img src="images/quitter1.png"/> </button></td>
</tr>           
</table>   

<button id="cre" onClick="creTab(<?php echo $n ?>,'page63.php')" ><img src="images/creer1.png" /> &nbsp; Créer</button>


Javascript

function creTab(numlig, pag){
	
	// gestion des navigateurs (IE, MOZ, NS)
	nav = navigator.appName;
	if (nav == 'Microsoft Internet Explorer')
		nav ='ie';

	var idlig = 'lign['+ numlig +']';
	var nvcod = 'co['+ numlig +']';

	//Nom des boutons annuler et valider
	var annul = 'ann['+ numlig +']';
	var valid = 'val['+ numlig +']';
	var btnVal = document.getElementById("vali");
	var btnAnn = document.getElementById("annu");
	
	document.getElementById(valid).style.display = 'block';
	document.getElementById(annul).style.display = 'block';
	btnVal.disabled = false;
	btnAnn.disabled = false;
	
	if(nav == 'ie'){	
		document.getElementById(idlig).style.display = 'block';
	}
	else
	{
		document.getElementById(idlig).style.display = 'table-row';
	}
	document.getElementById(nvcod).focus();
	document.getElementById(nvcod).select();
	
	
	document.getElementById(valid).onclick = function ()
	{
		document.getElementById('formc').action = pag+'?A=Cre';
		document.getElementById('formc').submit();
	};
	
	//Appui sur Valider(bouton bas)
	btnVal.onclick = function ()
	{
		document.getElementById('formc').action = pag+'?A=Cre';
		document.getElementById('formc').submit();
	};
	
	//Appui sur Annul
	document.getElementById(annul).onclick = function ()
	{
		document.getElementById(valid).style.display = 'none';
		document.getElementById(annul).style.display = 'none';
		btnVal.disabled = true;
		btnAnn.disabled = true;
		document.getElementById(idlig).style.display = 'none';
	};
	
	//Appui sur Annuler(bouton bas)
	btnAnn.onclick = function ()
	{
		document.getElementById(valid).style.display = 'none';
		document.getElementById(annul).style.display = 'none';
		btnVal.disabled = true;
		btnAnn.disabled = true;
		document.getElementById(idlig).style.display = 'none';
	};
}


et de nouveau html

if (isset($_GET['A']) && $_GET['A'] == "Cre")
{
	//Récupération des donnees
	$req = mysql_query("INSERT INTO `tc00` (`CodePlafond`, `LibellePlafond`,`MontantPlafond`) VALUES ('".$_POST['cod']."', '".str_replace("'","\'",$_POST['lib'])."', '".prixsql($_POST['niv'])."')",$cnx) or die('Erreur de selection '.mysql_error());
}


Je suis débutante JS, et si vous avez une meilleure méthode, pas de souci, je suis preneuse Smiley cligne

Cordialement

Cat
Modifié par catcat (26 Mar 2009 - 21:59)
j'ai trouvé, la balise form dans laquelle est contenu ce formulaire n'était pas fermée !!!