Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/01/2012, 12h52   #1
Invité de passage
 
Homme Simon Hallet
Étudiant
Inscription : janvier 2012
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme Simon Hallet
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2012
Messages : 2
Points : 0
Points : 0
Par défaut checkbox et mysql

Bonjour tout le monde !

Je suis étudiant en informatique (bachelier informatique et système : réseau et telecom). De ma propre initiative j'ai décidé de creer un portail pour les étudiants afin qu'ils puissent poster et lire des news à propos des cours et qu'ils puissent partager des download. Jusqu'ici j'ai su me débrouiller pour faire ce que j'avais en tête mais là je bloque.

J'ai fait une page qui affiche leurs posts (par exemple les news) et j'aimerais qu'ils puissent sélectionner les posts qu'ils veulent modifier (via checkbox)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
		if($table=='news')
		{
 
			$sql= "SELECT id,titre,texte,auteur, DAY(date) AS jour, MONTH(date) AS mois, YEAR(date) AS annee FROM news WHERE  auteur='$login' ORDER BY id DESC"  ;
			$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());	
 
 
			?>
 
 
    		<form action="admin_edit_del.php" method="post">
			<?php
 
			while($donnees=mysql_fetch_array($req))
			{
 
				 echo '<div class="zone_texte_sub">';
				echo '<div class="h1_edit"><span class="date_news">'.$donnees['jour'] . '/' . $donnees['mois'] . '/' . $donnees['annee'] .'&nbsp;</span>&nbsp;'.$donnees['titre'].'<span class="check_edit"><input type="checkbox" value="'.$donnees['id'].'"></span></div>';
				echo '<p>'.$donnees['texte'].'</p>';
				echo '</div>';
 
 
			}
 
			?>
            <input type="hidden" name="table" value="<?php echo "$table" ?>" />
    		<br /><center><input type="reset" value="annuler" /><input type="submit" name="submit" value="editer" /><input style="border-color:red; color:red;" type="submit" name="submit" value="supprimer" /></center><br>
    		</form>
			<?php
		}

Les données sont récuperées sous forme ( affiché via print_r dans la page appellée par le formulaire) :

Citation:
Array
(
[49] => on
[48] => on
[table] => news
[submit] => editer
)
Savez vous comment je pourrais récuperer, via ces checkbox, les id que j'aimerais updater voir supprimer de ma base de donnée ?

merci !
Tziboun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 13h32   #2
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 726
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 726
Points : 3 293
Points : 3 293
Salut

Citation:
Savez vous comment je pourrais récuperer, via ces checkbox, les id que j'aimerais updater voir supprimer de ma base de donnée ?
C'est plutôt simple.
L'idée est d'exploiter le HTML afin de renvoyer un tableau à plusieurs dimensions qui contiendront toutes les news.

Exemple : (au niveau de la boucle du formulaire)
Code :
1
2
3
4
5
while($donnees=mysql_fetch_array($req))
{
... etc ...
echo '<input type="checkbox" name="news_id[]" value="'.(int)$donnees['id'].'" />';
}
A la validation, tu obtiendras alors un tableau structuré comme ceci :
$_POST['news_id'][0], etc ...
Avec plus ou moins de données, tout dépend du nombre de cases cochées, et peut être même aucune (du coup "new_id" n'existera pas).


Pour faire le traitement en boucle (update ou delete), il suffit de faire une boucle foreach()
Exemple : (partie réception/traitement des données)
Code :
1
2
3
4
5
if (isset($_POST['news_id'])) {
    foreach ($_POST['news_id'] as $news_id) {
        // On met ici à jour chaque données avec -> $news_id
    }
}
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/01/2012, 15h27   #3
Invité de passage
 
Homme Simon Hallet
Étudiant
Inscription : janvier 2012
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme Simon Hallet
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2012
Messages : 2
Points : 0
Points : 0
merci pour ta réponse =)

Ca me parrait tout simple maintenant ! Pour une raison obscure je n'arrivaias à faire passer un tableau via la méthode POST, et là je vois quie ca marche tout à fait, ce qui est dommage c'est que je ne vois plus pourquoi je bloquais, j'ai éssayé tant de trucs que je sais plus ce que j'ia éssayé . Dans les forums certains disaient qu'il fallait utiliser la fonction serialize et unserialize, mais au final je vois que ca fonctionne sans probleme... bref ca fonctionne , merci beaucoup =)
Tziboun est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h35.


 
 
 
 
Partenaires

Hébergement Web