[RESOLU] Ajouter un bouton modifier dans un tableau fetch

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Ajouter un bouton modifier dans un tableau fetch

Re: Ajouter un bouton modifier dans un tableau fetch

par Seb K » 27 oct. 2015, 18:38

Super après une bonne nuit de repos et une correction/mise en forme du code j'obtiens ce que je veux.

Et tout fonctionne !

Par contre je n'ai pas trouvé de bouton Edit du post pour éviter qu'il remonte ...

Et merci a Or 1 qui m'a bien aiguillé :idea:

Code de ma page :
<?php

//requete de connexion
$db = new PDO("mysql:host=localhost;dbname=test;charset=utf8", "root", "");

//requete des infos tableau
$sql = "SELECT t1.forum_id as id1,t1.forum_name as nom1, t2.forum_id as id2, t2.forum_name as nom2, t3.topic_id, t3.topic_title, t3.post_tag, t3.topic_url 
			FROM phpbb_forums t1 left join phpbb_forums t2 on t2.parent_id = t1.forum_id left join phpbb_topics t3 on t2.forum_id = t3.forum_id 
			WHERE t1.parent_id = 141 ORDER BY t3.post_tag DESC";
			
//requete pour chercher les données de la liste déroulante
$tag = "SELECT * FROM phpbb_topics_tag";

?>
<!DOCTYPE html>
<html>
	<head>
	<title>Tableau des Topics</title>
	</head>
	<body>
	<h3>Tableau des TOPICS</h3>
	

<?php
  		
$tmp = $db->query($sql);

?>

<table border=2>
	<thead>
		<tr>
		<th>ID</th>
		<th>Topics</th>
		<th>Mot Clé</th>
		<th>Envoyer</th>
		<th>Mots clés</th>
		</tr>
	</thead>
<tbody>
<?php

while($topic = $tmp->fetch())
{
?>
	 			<form action="toto.php" method="post"><tr>
				<td><?php echo '<input type="text" name="topic_id" id="topics_id" value="'.$topic['topic_id'].'"/>';?> </td>  <!-- id du topic que je dois récupérer dans le $_POST --> 
				<td><?php echo '<a href="http://localhost/forum_ap/'.$topic['topic_url'].''.$topic['topic_id'].'.html">'.$topic['topic_title'].'</a>';?></td> <!-- Titre du post sous forme de lien cliquable -->
				<td><select name="topics_tag_id"><option value="-1">Sélectionnez un mot clé...</option>  <!-- liste de mots clés à affecter -->
<?php
				 $cat = $db->query($tag);
					while ($data = $cat->fetch()) 		
				{
					
				echo	'<option value="'.$data['topics_tag_id'].'">'.$data['topics_tag_name'].'</option>';	
				
		 		}
?>
							 			
				</select></td>
				<td><input type="submit"/></td> <!-- bouton de l'envoi du $_POST -->
				<td><?php echo $topic['post_tag'] ?></td>  <!-- plaus tard liste des mots clés affectés séparés par des virgules -->
				</tr> </form>

<?php
}
?>
</tbody>
</table>

</body>
</html>

Re: Ajouter un bouton modifier dans un tableau fetch

par Seb K » 26 oct. 2015, 19:51

Bonsoir,

Je reviens par ici car après une journée de recherche infructueuse j'ai pas vraiment avancé ...
il me semble que dans mon code (pas très propre) il y'ai quelques erreurs de syntaxe qui font que je n'arrive pas à afficher ma liste déroulante. Aussi les tests que je fais sur ma variable $_POST indiquent qu'elle est vide. Outre les message de type :
Notice: Undefined index: topic_tag_name in /var/www/html/forum_ap/test_mod/form_tab_topics2.php on line 15
Mon code :
<?php

$db = new PDO('mysql:host=localhost;dbname=zapilouforada;charset=utf8', 'root', 'rootadmin');
$sql = 'SELECT t1.forum_id as id1,t1.forum_name as nom1, t2.forum_id as id2, t2.forum_name as nom2, t3.topic_id, t3.topic_title, t3.post_tag 
			FROM phpbb_forums t1 left join phpbb_forums t2 on t2.parent_id = t1.forum_id left join phpbb_topics t3 on t2.forum_id = t3.forum_id 
			WHERE t1.parent_id = 141 ORDER BY t3.post_tag DESC';




$cat = $db->query("SELECT * FROM phpbb_topics_tag");
									while ($data = $cat->fetch()) 		
									{
										$data['topic_tag_id'];
										$data['topic_tag_name'];
									}


?>
<!DOCTYPE html>
<html>
	<head>
	<title>Tableau des Topics</title>
	</head>
	<body>
	<h3>Tableau des TOPICS</h3>
	<form action="toto.php" method="post">

<?php
  		
$tmp = $db->query($sql);

echo '<table border=2>
	<thead>
		<th>ID</th>
		<th>Topics</th>
		<th>Mot Clé</th>
		<th>Envoyer</th>
		<th>Mots clés</th>
	</thead>';

while($topic = $tmp->fetch())
{
	echo '<tr><td><input type="text" name="topic_id" id="topic_id" value="'.$topic['topic_id'].'"></td><td>'  //zone type input qui doit être implémentée 
						 .$topic['topic_title'].'</td><td>
				 		 <select name="topic_tag_id" id="topic_tag_id"><option value="'.$data['topic_tag_name'].'">Sélectionnez un mot clé...</option>
							 <option value="'.$data['topic_tag_id'].'">'.$data['topic_tag_name'].'</option>				
						 </select></td><td>
						 <input type="submit"/></td> <td>' //bouton qui envoie le $_POST contenant 'topic_tag_id' et 'topic_id
						 .$topic['post_tag'].'</td></tr>'; //créer un array qui m'affiche les mots clés associés sous forme de lien href qui supprime le mot clé
}

echo '</tbody></table>';

?>
</body>
</html>
Variable $_POST :
Array ( [topic_id] => [topic_tag_id] =>
Je pense que mes variables ne sont pas correctement initialisée mais je ne sais plus ou chercher ...

Merci d'avance

Re: Ajouter un bouton modifier dans un tableau fetch

par Seb K » 25 oct. 2015, 20:57

Merci pour ta réponse rapide !

J'ai pu avancer un peu mais je cale toujours sur la récupération des ID. Ne sachant pas utiliser javascript je mise sur le 100% php qui devrait suffire pour ce que j'ai a faire.

Voici mon code corrigé qui mérite sans doutes un gros lifting :? :
<!DOCTYPE html>
<html>
	<head>
	<title>Tableau des Topics</title>
	</head>
	<body>
	<h3>Tableau des TOPICS</h3>
	<form action="add_topics_tag.php" method="post">

<?php
  		
$sql = 'SELECT t1.forum_id as id1,t1.forum_name as nom1, t2.forum_id as id2, t2.forum_name as nom2, t3.topic_id, t3.topic_title, t3.post_tag 
			FROM phpbb_forums t1 left join phpbb_forums t2 on t2.parent_id = t1.forum_id left join phpbb_topics t3 on t2.forum_id = t3.forum_id 
			WHERE t1.parent_id = 141 ORDER BY t3.post_tag DESC';

$db = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
 

$tmp = $db->query($sql);

echo '<table border=2>
	<thead>
		<th>ID</th>
		<th>Topics</th>
		<th>Mot Clé</th>
		<th>Envoyer</th>
		<th>Mots clés</th>
	</thead>';

while($topic = $tmp->fetch())
{
	echo '<tr><td>' .$topic['topic_id'].'</td><td>'  //zone type input qui doit être implémentée 
						 .$topic['topic_title'].'</td><td>
				 		 <select name="topic_tag_name"><option value="-1">Sélectionnez un mot clé...</option>
				
				  				'$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
								 $cat = $bdd->query("SELECT * FROM phpbb_topics_tag");
									while ($data = $cat->fetch()) 		
									{
										echo "<option value='".$data['topic_tag_id']."'>".$data['topic_tag_name']."</option>";
										}				'
				
						 </select></td><td>
						 <input type="submit" id="'.$topic['topic_id'].'" class="mots" /></td> <td>' //bouton qui envoie le $_POST contenant 'topic_tag_id' et 'topic_id
						 .$topic['post_tag'].'</td></tr>'; //créer un array qui m'affiche les mots clés associés séparés par des virgules sous forme de lien href qui au clic supprime le mot clé
}

echo '</tbody></table>';

?>
</body>
</html>
Capture du tableau :
Image

Merci d'avance.

Re: Ajouter un bouton modifier dans un tableau fetch

par or 1 » 25 oct. 2015, 16:12

dans la colonne Associez un mot clé :
'<input type="text" id="'.$topic['topic_id'].'" class="mots" />'

en javascript, mettre un listener sur les éléments de la class mots
récuperer l'id de l'élément modifié, récupérer le contenu du champ
envoyer ses 2 infos en ajax à un script php qui va faire la changement dans la base de donnée. eventuellement, au retour du script php, faire une mise à jour visuelle pour indiquer que le changement c'est bien fait.

pas besoin de la colonne "Bouton Valider"

Ajouter un bouton modifier dans un tableau fetch

par Seb K » 25 oct. 2015, 15:02

Bonjour,

Je suis à la recherche d'un moyen pour ajouter un bouton submit ou lien Href qui me permettrait de récuperer dans une variable le contenu des cellules ID et Titre. Mon explication n'est pas très claire, j'espère que mes extraits de code seront plus explicites :
<?php
  		
$sql = 'SELECT t1.forum_id as id1,t1.forum_name as nom1, t2.forum_id as id2, t2.forum_name as nom2, t3.topic_id, t3.topic_title, t3.post_tag 
			FROM phpbb_forums t1 left join phpbb_forums t2 on t2.parent_id = t1.forum_id left join phpbb_topics t3 on t2.forum_id = t3.forum_id 
			WHERE t1.parent_id = 141 ORDER BY t3.post_tag DESC';

$db = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
 
$tmp = $db->query($sql);

echo '<table border=2>
			<thead><th>'
					.$topic = 'topic_id'. '</th><th>'
					.$topic = 'topic_title'. '</th><th>'
					.$topic = 'Associez un mot clé'.' </th><th>'
					.$topic = 'Bouton valider'.' </th><th>'
					.$topic = 'Liste des mots clés associés'.'</th></thead>';
	

while($topic = $tmp->fetch())
{
	echo '<tr><td>'
				 .$topic['topic_id'].'</td><td>'       // Id que j'aimerais récuperer
				 .$topic['topic_title'].'</td><td>'    // Titre que j'aimerais récuperer
				 .$topic['post_tag'].'</td>	<td>'		// plus tard liste de mots à associer
				 .$topic['post_tag'].'</td><td>'			// bouton ou lien modifier contenant l'id cité plus haut
				 .$topic['post_tag'].'</td></tr>';		// plus tard liste de mots clés déjà assignés
			
}

echo '</tbody></table>';
?>

Aperçu du tableau :
Image

Je suis à la recherche n'importe quelle piste à essayer, je ne sais plus ou chercher ...

Merci d'avance