Forms PHP/Javascript

Résolu
lefarfadais Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
lefarfadais Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je développe une application web en PHP et j'ai un de ces problèmes à me cassé la têtes

selon le nombre d'entrée qu'il y a dans ma base de données, j'affiche un formulaire avec 2 <input type="text"> et 3 images, chacune d'entres elles en les balises de lien "a". Le code en détails va suivre.

je tente tant bien que mal de vouloir faire un submit/window.open par le javascript mais lorsque je clique sur l'image en question, une erreur javascript arrive tout le temps, soit "form is null" ou "form is undefined.

Voici le code Javascript
<script language="javascript" type="text/javascript">

function submitForm(formName, choice) {
	var myForm = document.forms(formName);
	myForm.getElementById("choice").value = choice;
	myForm.submit();
}
function previewLink(formName) {
	var myForm = document.forms[formName];
	var myURL = myForm.getElementById("txtLink").value;
	window.open(myURL,"preview",null);
}
</script>


Voici le code PHP qui boucle
<?php #Ajout et suppression de lien dynamique#
			$strSql = [Hidden!]
			$sqlResult = mysql_query($strSql);
			while ($sqlData = mysql_fetch_array($sqlResult))
			{
				# Ajout d'une colonne par entrée
				?>
					<tr>
					<form name="frmDel<?php echo $sqlData['id']; ?>" id="frmDel<?php echo $sqlData['id']; ?>" method="post" action="./editartiste.php">
						
						<!-- Valeur caché mais nécessaire pour le formulaire -->

						<input type="hidden" name="choice" id="choice" value="delete" />
						</a><a href="javascript: submitForm('frmUpd<?php echo $sqlData['id']; ?>','delete');"><img src="image/edit/link_delete.png" alt="delete"  /></a></td>
					</form>
					<form name="frmUpd<?php echo $sqlData['id'] ?>" method="post" action="./editartiste.php">
						
						<!-- Valeur caché mais nécessaire pour le formulaire -->

						<input type="hidden" name="choice" id="choice" value="update" />
						<td><a href="javascript: submitForm('frmUpd<?php echo $sqlData['id']; ?>','update');"><img src="image/edit/link_edit.png" alt="edit" /></a></td>
						<td><input type="text" name="txtText" value="<?php echo $sqlData['description'] ?>" /></td>
						<td><input type="text" name="txtLink" value="<?php echo $sqlData['lien'] ?>" /></td>
						<td><a href="javascript: previewLink('frmUpd<?php echo $sqlData['id'] ?>');"><img src="./image/edit/link_go.png" alt="go" /></a></td>
					</form>
					
					</tr>
				<?php
			}
		 # Ajout d'une colonne qui va permettre d'ajouter un élément?>
		 <tr>
		 	<form name="frmAdd" id="frmAdd" method="post" action="./editartiste.php">

			<!-- Valeur caché mais nécessaire pour le formulaire -->

			<input type="hidden" name="choice" value="add" />
		 	<td></td>
			<td><a href="javascript: submitForm('frmAdd','add');"><img src="image/edit/link_add.png" alt="add"  style="border:0px"/></a></td>
			<td><input type="text" name="txtText" value="" /></td>
			<td><input type="text" name="txtLink" value="" /></td>
			<td><a href="javascript: previewLink('frmAdd');"><img src="./image/edit/link_go.png" alt="go" /></a></td>

			
			</form>


L'erreur survient quand j'essaie de cliquer sur l'image entre les balises de lien "a"

Je ne sais pas quoi faire.
A voir également:

5 réponses

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
A mon avis tu n'as pas le droit d'utiliser cette forme ou tu mélanges l'accès à un élémnet par le nom et par l'id

var myForm = document.forms(formName);
myForm.getElementById("choice").value = choice;


il faut faire
var myForm = document.getElementById("choice");
	myForm.value = choice;


et tu as plusieurs fois le même id "choice" dans ta page donc pb

débrouilles toi pour leur mettre un indice, tu le fait bien pour le nom de la form alors fait pareil et tu passes l'id correspondant en argument
1
lefarfadais Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
Merci pour ta réponse, mais malheureusement, sa ne règle pas mon problème.

var myForm = document.getElementById(formName);
myForm.getElementById("choice").value = choice; 


Je fais ce code justement parce que j'ai plusieurs éléments "choice", dans l'intention d'aller chercher l'élément "choice" du form sur lequel l'action se fait car dans la page suivante, je récupère "choice" et fais l'action en fonction du "id" transmit. Je ne peux donc pas mettre un indice à l'ID de "choice".

Merci pour les réponses futures
0
lefarfadais Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Alain_42,

Ta réponse est un peu flou mais j'ai fini par m'en sortir en te relisant et en me relisant.

La Solution :
Je ne peux pas faire document."nomduform"."nomdelemement".value

j'ai refais mon code pour n'obtenir qu'un form, j'ai écris des input de type hidden avec les valeurs que je veux transférer et j'attribue la valeur dans mon javascript et je soumet par après.

la génération de mes text fields se fait dans une boucle et j'ajoute le numéro à la fi. Je n'ai qu'a fournir l'id correspondant à l'entrée dans la base de données et le tour est joué!

merci beaucoup pour l'aide

P.S. le 42, est-ce que ça fait référence au film "Le Guide Galactique" ? :P
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
le principe c'est que tu n'as pas le droit d'avoir plusieurs id avec le même nom dans une page

ce que je voulait dire c'est que tu pouvait très facilement mettre id="choice<?php echo $sqlData['id']; ?>"

dans chacun des formulaires donc ils étaient ainsi tous différents

et à l'ppel de la fonction tu passait en argument cet id

PS 42 c'est mon département
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lefarfadais Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

C'est ce que j'ai fait

function SubmitForm(lid) {
      document.getElementById("txtLink"+lid).value
}

<input type="text" id="txtLink<?php echo $sqlData['id']; ?>" value="" />


le code marche a merveille maintenant

merci encore
0