Envoie de tableau en php

Résolu/Fermé
patounnette Messages postés 31 Date d'inscription mercredi 16 mai 2012 Statut Membre Dernière intervention 18 juin 2013 - 19 juin 2012 à 09:49
patounnette Messages postés 31 Date d'inscription mercredi 16 mai 2012 Statut Membre Dernière intervention 18 juin 2013 - 5 juil. 2012 à 10:59
Bonjour a tous,

en espérant que quelqu'un puisse répondre a cette question ...

j'ai un livre d'or a gérer et pour cela je souhaiterai pour la parti administrateur mettre des cases a coché , la je viens a mon problème des case a coché il m'en faut 2 pour chaque commentaire donc une boucle
echo"<form method='POST'>"
$validation=array ()
while ($donnees = mysql_fetch_array($reponse))
{
echo"<input type='checkbox' name='validation' ";//ici je crois que c'est n'importe quoi
}
echo"</form>"

merci de vos réponses d'avance

5 réponses

JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 19/06/2012 à 10:58
Salut !

echo '<form method='POST'>'; 

while ($donnees = mysql_fetch_array($reponse)) { 
    echo '<p>'.substr($donnees['contenu'], 0, 90).'</p>'; 
    echo '<input type="checkbox" name="valid_'.$donnees['id'].'"> Valider'; 
    echo '<input type="checkbox" name="supp_'.$donnees['id'].'"> Supprimer'; 
} 

echo '</form>';


Quand tu supprime(valide), tu fait par exemple un explode dans une boucle foreach($_POST ..., tu récupère ainsi l'action a faire, et l'id du commentaire a traiter !

Mettez en résolu quand c'est résolu -.- ...
1
Kafiristanica Messages postés 263 Date d'inscription mardi 12 juin 2012 Statut Membre Dernière intervention 27 août 2012 28
Modifié par Kafiristanica le 19/06/2012 à 11:39
<?php
while ($donnees = mysql_fetch_array($reponse))
{
echo "<form action=\"checkbox.php\">";
echo "<input type=\"hidden\" name=\"envoi\" value=\"yes\">"; // aiguilleur

echo "<input type=\"checkbox_" name=\"oui\" value=\"oui\"> Valider<br />";
echo " <input type=\"checkbox\" name=\"suppr\" value=\"suppr\"> Supprimer<br />";

echo "<input type=\"submit\">";

echo " </form>";
}

?>

<?php

$envoi = $_GET['envoi']; //aiguilleur
$valid = $_GET['oui']; //si valid
$suppr = $_GET['suppr']; //si suppr

if ($envoi == 'yes') {

if ($valid == oui)
{ ta requete pour confirmer la validite dans la base de donnée
+ echo "ok";
}
if($suppr == suppr)
{ ta requete delet
+ echo "ok";
}


}
?>

j'ai pas pu tester mais ça doit se rapprocher de ça
1
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 19/06/2012 à 11:10
1 - Faut ajouter des conditions sur la variable $_GET, si elle existe ou pas !!!
2 - T'as deux formulaires la ?!!! o.O'
Et dans une boucle en plus, donc si il y a 200 commentaires, il va créer 200 formulaires !
et Donc, on ne pourra pas supprimer plusieurs commentaires a la fois, ou valider plusieurs commentaires d'un coup !

PS : T'as oublier de préciser quel commentaire on va valider ou supprimer ?
0
patounnette Messages postés 31 Date d'inscription mercredi 16 mai 2012 Statut Membre Dernière intervention 18 juin 2013
19 juin 2012 à 11:09
bon merci pour ton aide je pense que avec tout ça je vais pouvoir me débrouiller
pour les test des valeurs empty serai pas mieux ?? je l'avais fais comme ça avant
0
Kafiristanica Messages postés 263 Date d'inscription mardi 12 juin 2012 Statut Membre Dernière intervention 27 août 2012 28
19 juin 2012 à 11:11
1 si elle existe elles ont la valeur du value non ? sinon rien
2 j'ai autant de formulaire que de ligne dans sa table ?

le ps oui

mais je suis pas sur après c'est un debut et je fonctionne beaucoup aux tests ^^
0
patounnette Messages postés 31 Date d'inscription mercredi 16 mai 2012 Statut Membre Dernière intervention 18 juin 2013
19 juin 2012 à 11:12
joos je pense qu'il a ecrit ça pour montrer le principe après a moi de me creusé un peux la tété
mais vous m'avais déja tout les deux bien aider plus qu'a faire
0
Kafiristanica Messages postés 263 Date d'inscription mardi 12 juin 2012 Statut Membre Dernière intervention 27 août 2012 28
19 juin 2012 à 11:14
Bon courage a toi n'hesite pas redemander de l'aide ;)
0
Kafiristanica Messages postés 263 Date d'inscription mardi 12 juin 2012 Statut Membre Dernière intervention 27 août 2012 28
Modifié par Kafiristanica le 19/06/2012 à 09:53
echo"<input type=\"checkbox\" name=\"validation\" />";

plutot non ?
0
Salut,

Non je pense pas c'est le problème, pas besoin d'échapper les guillemets vu que les simples sont inclus dans des doubles.
Par contre une case à cocher sans valeur à transmettre ça servira pas à grand chose. Ajoutez l'attribut value et la valeur en dynamique sinon votre boucle n'as aucune utilité. Indiquer aussi à quoi correspond la case pourrait être utile aussi non?

//, la je viens a mon problème des case a coché il m'en faut 2 pour chaque commentaire

Si vous voulez 2 cases à cocher obligatoirement il vous faut vérifier en javascript avant l'envoi du formulaire, par contre ils ne devraient pas avoir le même name pour pouvoir les différencier ou alors une id différente.
Si vous n'avez qu'un choix de 2 valeur est ce utile de faire un fetch_array et une boucle?
0
patounnette Messages postés 31 Date d'inscription mercredi 16 mai 2012 Statut Membre Dernière intervention 18 juin 2013
19 juin 2012 à 10:19
dsl je me suis mal exprimer il m'en faut deux un pour valider/dévalider le commentaire et un pour le supprimer .
et maintenant que tu le dis oui si j'ai rien mis, j'envoi rien

et il me faut une boucle car je demande a ma page d'afficher tout les commentaires présent sur ma base de donné et de cocher la case en fonction de ce que je veux faire.

je vais tester un truc si ça fonctionne je le publierai si nan ben je reviendrai a la charge avc un code qui ne marche pas merci Kafiristanica
0
patounnette Messages postés 31 Date d'inscription mercredi 16 mai 2012 Statut Membre Dernière intervention 18 juin 2013
19 juin 2012 à 12:01
<body>
	<div class='mep'height="450">
	
<?php
if(isset($_POST['sup'])or isset($_POST['val']) or isset($_POST['deval']))
{
	print_r($_POST['sup']);
	if ($tst=mysql_connect("127.0.0.1", "root", ""))
	{
		echo "connection ok </br>";
		if($num=(mysql_select_db("livredor")))
		{
			echo "connexion bdd ok </br>";
			if(!empty($_POST['sup']))
			{
				foreach($_POST['sup'] as $sup)
				{
								
				    if ($req=mysql_query ("DELETE FROM 'livreor' WHERE 'id' ='$sup'"))
				          echo "<br/>requete effectuer<br/>commentaire numero ".$sup." correctement supprimer";
				    else
					  echo "<br/>erreur requete";
				  }
			}
			if(!empty($_POST['val']))
			{
				foreach($_POST['val']as $val)
				{
					$val=$_POST['val'];
					if ($req=mysql_query ("UPDATE 'livreor' SET valid='1' WHERE('livreor'.'id' ='$val')"))
					{
						echo "<br/>requet effectuer <br/> commentaire ".$val." publier";
					}
						else 
						      echo "<br/> erreur requete " ;
				}
			}
			if(!empty($_POST['deval']))
			{
				foreach($_POST['deval']as $val)
			      {
	
			            if ($req=mysql_query ("UPDATE 'livreor' SET valid='0' WHERE('livreor'.'id' ='$deval')"))
			               {
		        	               echo "<br/>requet effectuer <br/> commentaire ".$deval." publier";
			               }
			              else 
			                     echo "<br/> erreur requete " ;
			        }
			}
		}
		else
		{
		       echo "connexion bdd a échoué </br>";
		}
	}
	else
	{
	      echo "connexion échoué </br>";
	}
	mysql_close();
}
else
{
        if ($tst3=mysql_connect("127.0.0.1", "root", ""))
	{
		if ($tst4=mysql_select_db("livredor"))
		{
		
			$nombreDeMessagesParPage = 8;
			$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
			$donnees = mysql_fetch_array($retour);
			$totalDesMessages = $donnees['nb_messages'];
			$nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
			echo 'Page : ';
			for ($i = 1 ; $i <= $nombreDePages ; $i++)
			{
			echo '<a href="page_admin.php?page=' . $i . '">' . $i . '</a> ';
			} 
			if (isset($_GET['page']))
			{
				$page = $_GET['page']; 
			}
			else 
			{
				$page = 1; // On se met sur la page 1 (par défaut)
			}
			$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
			echo"<div class='admin'>";
			if ($reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage))
			{
				echo"<form action='page_admin.php' method='post'>";
				$val=array();
				$deval=array();
				$sup=array();
				while ($donnees = mysql_fetch_array($reponse))
				{
					$inc=$donnees['id'];
					echo "<p><strong>".$donnees['id']." " . $donnees['pseudo'] . "</strong> a écrit :<br />" . $donnees['message']."</br>" ;	
				        echo "supprimer : <input type=\"checkbox\" name=\"sup[]\" value= '$inc' />";
					if ($donnees['valid']==1)
					{
						echo " <div style='color:green'>déja valider</div>";
						echo "dévalider : <input type='checkbox' name='deval[]' value= '$inc' />";
					}	
					else
					{
						echo " <div style='color:red'><strong>en cour de validation</strong></div> ";
						echo "valider : <input type='checkbox' name='val[]' value= '$inc' />";
					}
					echo"</p>";
				}
			        echo"<input type='submit' name='valider'>";
				echo"</form>";
			}
			else
			echo "requete impossible";
		}
	        else
		echo "connexion table echoué";
		}
		else
			echo "connexion bdd echou";
		mysql_close();
	}
?>
</div></div>
	</body>

bon j'ai mis tout le code de ma parti admin de mon livre d'or merci Kafiristanica et joos
0

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

Posez votre question
Kafiristanica Messages postés 263 Date d'inscription mardi 12 juin 2012 Statut Membre Dernière intervention 27 août 2012 28
Modifié par Kafiristanica le 19/06/2012 à 12:06
c'est propre, c'est rare ici bravo =)
Peut etre une condition au debut pour eviter plusieurs cases cochés non ?
0
patounnette Messages postés 31 Date d'inscription mercredi 16 mai 2012 Statut Membre Dernière intervention 18 juin 2013
19 juin 2012 à 12:07
merci au lycée on nous apprend comme ça donc autant faire les choses comme on le sais
je vous remercie encore et merci pour les conseils
0