Données

Siingers
Invité n'ayant pas de compte PHPfrance

29 juil. 2014, 10:49

j'ai réussi à tester pour la lightbox et ça n'a pas l'air de poser des soucis.


Pour ton deuxième exemple, je l'ai bien pris en compte et adapter, par contre je n'arrive pas à récupérer les données. Quand je clique sur "envoyer" rien ne ce passe. J'ai pourtant bien fais le lien vers la page extérieure.

Mammouth du PHP | 2278 Messages

29 juil. 2014, 11:07

Dans la page extérieure, il faut utiliser :
$noms= $_POST['nom'];
print_r($noms);
Si tu n'as rien mets:
print_r($_POST);
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Siingers
Invité n'ayant pas de compte PHPfrance

29 juil. 2014, 11:15

J'ai essayé mais je n'arrive pas à récupérer les données.


Enfin je pense que c'est un problème de lien entre les 2 pages donc j'essaie de voir d'où ça peut venir.
Je te met mes deux codes au cas ou je me serais trompée.

Code page principale :
    // on va scanner tous les tuples un par un
    while($data = mysql_fetch_assoc($req)) {
    // on affiches les résultats dans la <table>
	
		/*pour simuler la base de données*/
		$data = array(
				1 =>array ("Image"=> $data['img'] ,"Nom"=> $data['name'] , "Level"=> $data['level'], "Grade"=> $data['grade_name'] , "Type"=> $data['name_type'] )
				);
		
		$chaine = "<form method = 'post' action = 'armes.php' id ='formulaire'>";
		foreach ($data as $ligne)
		{
				$img = $ligne['Image'];
				$name = $ligne['Nom'];
				$level = $ligne['Level'];
				$grade = $ligne['Grade'];
				$type = $ligne['Type'];
				$chaine .= "
				<tr>
					<td><center><input type = 'text' name = 'Image[]' value = '$img' /></center></td>
					<td><center><input type = 'text' name = 'Nom[]' value = '$name' /></center></td>
					<td><center><input type = 'text' name = 'Level[]' value = '$level' /></center></td>
					<td><center><input type = 'text' name = 'Grade[]' value = '$grade' /></center></td>
					<td><center><input type = 'text' name = 'Type[]' value = '$type' /></center></td>
				";
		
		}
		$chaine .="
					<td><center><button type = 'submit' >Envoyer</button></form></center></td>
				</tr>";
		print $chaine;


Code page extérieure :
<?PHP
             var_dump($_POST);
	
			$img = $_POST['img'];
			$name= $_POST['name'];
			$level = $_POST['level'];
			$grade = $_POST['grade'];
			$type = $_POST['type'];
			
			
			
			print "$img $name $level $grade $type";      
			
			print_r($name);
			print_r($_POST);

?>		


ViPHP
xTG
ViPHP | 7331 Messages

29 juil. 2014, 13:07

Name != nom
Type != type
ect
;)

Siingers
Invité n'ayant pas de compte PHPfrance

29 juil. 2014, 13:50

Merci pour ton aide xTG mais malheureusement le problème ne vient pas de là :'(

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

29 juil. 2014, 14:09

Qu'affiche le var_dump($_POST) ? (ou le print_r($_POST), c'est pareil :)), d'ailleurs, histoire de le lire plus facilement, tu peux ajouter les balises <pre> autour :
echo '<pre>';
print_r($_POST);
echo '</pre>';
Cela devrait t'afficher le nom des variables qui sont envoyées et les valeurs associées. Tu devrais ainsi remarquer dans ta page extérieure que les champs de ton formulaire sont nommés "Image", "Nom", "Level", ... alors que tu tentes de lire les variables $_POST['img'], $_POST['name'], ... (cf. le commentaire de xTG :))

$_POST['Image'], $_POST['Nom'], $_POST['Level'], ... devrait être plus efficace :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Siingers
Invité n'ayant pas de compte PHPfrance

29 juil. 2014, 14:19

En effet Ryle, le nom des variables n'étaient correctes sur ma page extérieure comme l'a signalé xTG. Du coup je les aient modifiées, normalement il ne devrait plus avoir de soucis de ce côté.



Mais le problème est que je ne peux pas afficher les variables envoyées ..

Lorsque je clique sur le bouton "envoyer" rien ne se passe. La page extérieure n'est pas appelée ou j'ai du oublier un élément dans le code.

Siingers
Invité n'ayant pas de compte PHPfrance

29 juil. 2014, 14:28

(désole pour le double post)

J'ai compris d'où venait le problème.


Sans lightbox :
- Je récupère les données de la base.
- L'envoi du formulaire fonctionne
- Les variables récupérées sont correctes (le changement des noms ça aide :p ).

Avec lightbox :
- Je récupère bien les données de la base
- L'envoi du formulaire ne fonctionne pas => l'action du bouton "envoyer" n'est pas prise en compte.


Voilou problème résolu, j'ai plus qu'à trouver pourquoi ça plante avec la lightbox ^^'


Merci à tous pour votre aide :D

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

29 juil. 2014, 14:33

Hmm... Je ne sais pas si c'est lié, mais la construction de ton code html n'est pas bonne... tes balises form et td s'entrecroisent, il manque des balises tableau...

Tu peux également essayer de supprimer les espaces autour des "=" dans ta balise "form"
<form method='post' action='armes.php' id='formulaire'>
au lieu de
<form method = 'post' action = 'armes.php' id ='formulaire'>

Idem pour les inputs et le bouton :)

Si ça ne change rien, n'hésite pas à remettre ton code modifié (uniquement la page du formulaire, cela devrait suffir) que l'on puisse voir s'il manque quelque chose :)

Ps : ta page extérieure s'appelle bien armes.php ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Siingers
Invité n'ayant pas de compte PHPfrance

29 juil. 2014, 14:46

En rajoutant / supprimant des balises à droite et à gauche de mon tableau j'ai pu voir que le code fonctionnait.

En effet il y a des problèmes au niveau des balises, je vais essayer d'arranger ça pour tout fonctionne correctement.


Par contre je ne comprends pas trop pourquoi dans la lightbox ça ne voulait pas fonctionner alors que sans lightbox il n'y avait aucune erreur d’exécution, c'est quand même étrange x)






Un grand Merci à vous trois pour votre aide ! Vous me sauvez la vie :D

Petit nouveau ! | 4 Messages

31 juil. 2014, 01:20

jamais "</input>" a la fin

<input type="button" name="<?=$data['id_weapon']?>" value="<?=$data['name']?>" onclick="location.href = "<?=$data['url']?> \>

Mammouth du PHP | 2278 Messages

31 juil. 2014, 08:01

c'est <input ........ espace />
Quant aux espaces dans le code html, j'essuie, puisque je panse.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Siingers
Invité n'ayant pas de compte PHPfrance

31 juil. 2014, 11:42

Pour les espaces, je peux paraître nulle mais c'est juste que je trouve ça plus lisible (enfin pour moi).


J'ai juste une dernière petite question.
Dans le formulaire il y a l'url d'une image que je récupère, par contre à l'affichage je peux voir l'url mais pas l'image. Comme puis-je remédier à ça ?

<td><input style='border:0px' type = 'text' name = 'Image[]' value = '$Image' /></td>
Si je change le type="text" par type="image" cela ne change rien lors de l'affichage

ViPHP
xTG
ViPHP | 7331 Messages

31 juil. 2014, 13:26

Dans le formulaire il y a l'url d'une image que je récupère, par contre à l'affichage je peux voir l'url mais pas l'image.
J'arrive un peu en cours mais voici ce que je propose naïvement :
<td><input style='border:0px' type = 'text' name = 'Image[]' value = '<?php echo $Image; ?>' /></td>
en partant du principe que $Image est l'url de l'image.

Siingers
Invité n'ayant pas de compte PHPfrance

31 juil. 2014, 13:39

    while($data = mysql_fetch_assoc($req)) {
    // on affiches les résultats dans la <table>
	
		/*pour simuler la base de données*/
		$data = array(
				1 =>array ("Image"=> $data['img'] ,"Nom"=> $data['name'] )
				);
		
		$chaine = "<form method='post' action='index.php' id ='formulaire' >";
		foreach ($data as $ligne)
		{
				$Image = $ligne['Image'];
				$Nom = $ligne['Nom'];
				$chaine .= "
				<table border='0' style='width:800px '>
				<tr>
					<td><input style='border:0px' type = 'text' name = 'Image[]' value = '$Image' /></td>
					<td><input style='border:0px' type = 'submit' name = 'Nom[]' value = '$Nom' /></td>
				</tr></table></form>";
		
		}
		$chaine .="";
		print $chaine;

    }

J'ai testé ton code xTG mais ça ne passe pas :/