logo

NPDS : Gestion de contenu et de communauté


Content & Community Management System (CCMS) robuste, sécurisé, complet, performant, parlant vraiment français, libre (Open-Source) et gratuit.
20 visiteur(s) et 1 membre(s) en ligne.
Activité du Site

Pages vues depuis 25/05/2001 : 108 603 862

  • Nb. de membres 8 693
  • Nb. d'articles 1 695
  • Nb. de forums 26
  • Nb. de sujets 8
  • Nb. de critiques 92

Top 10  Statistiques

Index du forum »»  Le coin des codeurs »» Cases à cocher (mais pas les 2 en même temps)

Cases à cocher (mais pas les 2 en même temps)#6536

4Contributeur(s)
bibiTribal-DolphinaxelGuizmo
3 Modérateur(s)
developpeurjpbJireck
bibi bibiicon_post
voila !! tout est dans le titre !!

En fait je dois gerer une corbeille, et donc j'ai 2 cases à cocher, une pour supprimer et une pour restaurer !!
(et un bouton envoyer avec une boite de confirmation mais ça on s'en fout)
Donc j'aimerai qu'on ne puisse cocher qu'un case à la fois .....et pas les 2.....
Comment faire .....



voici le script si besoin : :=!

<?

$HttpServer="HTTP_HOST";
$host="localhost";
$user="root";
$pass="";
$bdd="bdplib";
$connexion=mysql_connect($host,$user,$pass) ;
@mysql_select_db($bdd,$connexion);
// sélectionne toutes les fiches de la table $table
$query = "SELECT * FROM informations where Valid='NON' and Supprimer='OUI' and (Type ='Démonstration' or Type ='Demonstration') order by Id ;";
$result = mysql_query($query, $connexion);
/* donne le nombre de ligne d'un resultat*/
$num_rows = mysql_num_rows($result);
if (isset($enregistrer)){

$j=0;

while($j<$num_rows){

/* si la case est cochée echo $HTTP_POST_VARS["check".$j]='on', */
/*et si la case est décochée alors echo $HTTP_POST_VARS["check".$j] n'a pas de valeur*/
if(isset($HTTP_POST_VARS["check".$j])){
$HTTP_POST_VARS["check1".$j]!='on';
$requete=" delete from informations WHERE Valid='NON' and Supprimer='OUI' and ";
$requete.=" Id=" .$HTTP_POST_VARS["hid".$j] ;
$resultat = mysql_query($requete, $connexion);

}elseif (isset($HTTP_POST_VARS["check1".$j])){
$requete1="update informations set Supprimer='NON' and Valid='NON' where ";
$requete1.=" Id=" .$HTTP_POST_VARS["hid".$j] ;
$result1 = mysql_query($requete1, $connexion);

}
$j++;


}
$result = mysql_query($query, $connexion);

$num_rows=mysql_num_rows($result);
}

?>
<html>
<head>
<title>Supprimer démonstration</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<SCRIPT>
function reset_envoyer()
{
//ouvre une boite de confirmation
if (confirm("Etes vous sûr de vouloir supprimer ?")) {
document.form1.submit();
}


function controle_choix(i)
{
var choix = document.form1.check;
if (i == 0)
{
if (choix[0].checked == true)
{
for (i = 1; i < choix.length; i++)
choix[i].checked = false;
}
}
else
{
if (choix[i].checked == true)
{
choix[0].checked = false;
}
}
}

</SCRIPT>

<body bgcolor="#FFFFE1" ALINK="#FF9900" LINK="#FF9900" VLINK="#FF9900">
<FONT FACE="Verdana" SIZE=6 COLOR="#FF8040">
<center> Démonstrations</center></font>
<br><form name="form1" METHOD="POST" ACTION="file:///C|/Program%20Files/EasyPHP/www/plib/admin/supprimer/./supdemo.php?enregistrer=1" >

<?
if ($result) {
If ($num_rows==0) {?>
<center><? echo("Il n'y a pas de nouveaux documents à supprimer");?> </center>

<?} else{ ?>
<center><? echo "Il y a ".$num_rows." nouveaux documents";?> </center>
<br>
<blockquote><blockquote><? /*tabulation*/?>
<? $i=0;?>

<table width="802" border="1">
<? while ($val=mysql_fetch_array($result)){ ?>
<br>
<tr>
<td width="127" height="20" valign="top"><br>
<br><br>

<? $id=$val["Id"] ;?>

<? /* la case à cocher*/?>
<input type="checkbox" name='check<?echo $i;?>' checked > Supprimer
<input type="hidden" name='hid<?echo $i;?>' value=<?echo $id ;?>>
<? $i++; ?>
</td>

<td width="119" height="20" valign="top"><br>
<br><br>

<? /* la case à cocher*/?>
<input type="checkbox" name='check1<?echo $i;?>' onclick="controle_choix()" > Restaurer


</td>
<td width="534" valign="top"> <br>
<LI>

<? If ($val["NameTitle"] != "") { ?>
<font face="Verdana" size=3 color="#FF8040"><b>
<? echo $val["NameTitle"]; ?>
</b></font><br>
<? } ?>

<? If ($val["Organization"]!=""){ ?>
<font face="Verdana" size=1 color="#0000FF"><b> Organisation : </b>
<? echo $val["Organization"];?>
</font><br>
<? } ?>

<? If ($val["Abstract"]!="") { ?>
<FONT FACE="Verdana" size=1 COLOR="#0000FF"><b> Résumé : </b>
<? echo $val["Abstract"];?></font><br>
<? } ?>

<? If ($val["Description"]!="") {?>
<FONT FACE="Verdana" size=1 COLOR="#0000FF"> <b>Description : </b>
<FONT FACE="Verdana" size=1 COLOR="#0000FF">
<A HREF="#" onclick="window.open('<? echo $val["Description"];?>','description','width=380,height=270,toolbar=no,,menubar=no,scrollbars=yes,resizable=no')">
<? echo $val["Description"];?></a></font></font><br>
<? } ?>

<? If ($val["Keywords"]!=""){ ?>
<FONT FACE="Verdana" size=1 COLOR="#0000FF"><b>Keywords: </b>

<? echo $val["Keywords"];?></font><br>
<? } ?>

<? If ($val["URL"]!=""){ ?>
<? if (strpos($val["URL"],$httpserver) ){?>
<font face="Verdana" size=1 color="#0000FF"><b> URL : </b>
<a href="<? echo $val["URL"] ;?>" target="nwindow">
<? echo $val["URL"]; ?></a> </font><br>
<? } else { ?>
<font face="Verdana" size=1 color="#0000FF"><b> URL : </b>
<a href="<? echo $val["URL"];?>" target="nwindow">
<? echo $val["URL"];?></a> </font><br>
<? }?>
<? } ?>

<? If ($val["Contact"]!=""){ ?>
<FONT FACE="Verdana" size=1 COLOR="#0000FF"><b>Contact: </b>
<? echo $val["Contact"];?></font><br>
<? } ?>

<? If ($val["Email"]!=""){ ?>
<font face="Verdana" size=1 color="#0000FF"><b> E-mail :</b> <a href="mailto:'"&<? echo $val["Email"];?>&"'"><? echo $val["Email"];?></a><br></font>
<? } ?>

<? If ($val["Langue"]!=""){ ?>
<font face="Verdana" size=1 color="#0000FF"><b> Langue: </b>
<? echo $val["Langue"];?> </font><br>
<? } ?>
<? } ?>
<br>
</td>
</tr>
</table>
<br><br>

<?$val=mysql_result($result,$num_rows>$num=$num_rows);?>

<center><input type="Button" name="Button" value="Enregistrer les modifications" onclick="reset_envoyer()" ></center>

<? } ?>
<? } ?>

</blockquote></blockquote>
</form>
</body>

</html>
Tribal-Dolphin Tribal-Dolphinicon_post
utilise des boutons Radios, c plus simple.
bibi bibiicon_post
Comment tu t'en sert des boutons radio dans un formulaire car j'ai essayé....

Ok ça marche, on ne peut en cocher qu'un à la fois ok !! mais pour le traitemnt des requete en fonction de la case cochée la j'y arrive pas vu qu'il ont le meme nom et qu'ils n'ont pas une valeur fixe dans mon script (boucle type caddie)

merci !!
Tribal-Dolphin Tribal-Dolphinicon_post
tu fait un barbarian like !!
tu met ta valeur après l'action.

Exemple =>
Le radio efface à la valeur efface:1 // et le retaure à la valeur restore:1 (1 étant l'id de l'enregistrement)

Ensuite, tu à plus qu'as fair un explode de la valeur et tu as les 2 paramètres dont tu as besoin.
bibi bibiicon_post
dsl mais g rien compris t'aurais pas un exemple?
je suis débutant, je ne sais pas me servir des explode.
Tribal-Dolphin Tribal-Dolphinicon_post
<input type="radio" name="name" value="efface:1">

Lors du traitement du formulaire :

list($action,$id) = explode(":",$name);

if($action=="efface")
{ $query = mysql_query("DELETE FROM table WHERE id='$id'"); }

etc.............

C plus clair ??
En tous cas, je ne saurais trop te conseiller d'aller consulter la doc PHP sur www.nexen.net

@++

[ Message édité par : Tribal-Dolphin : 08-07-2003 06:27 ]
axel axelicon_post
moi je fais a la debutante :
<input type=radio name=xxxxx value=1>Effacer</input>
<input type=radio name=xxxxx value=2>Restaurer</input>
puis un pov if $xxxxx = 1 {f° pr effacer} else {F° pr restaurer}

Ms c un vrai truc de nabot en php... :-D :-D :-D

[ Message édité par : Tribal-Dolphin : 08-07-2003 06:25 ]
bibi bibiicon_post
J'ai mis ce problème en attente mais j'ai exactement le même problème avec un autre truc donc je remets ça :=!

ICI je dois afficher par ordre alphabetique ou par date, donc dans une page selon la variable récupérée par une session j'execute une requete order by ID ou ordre by Title

Voici le script de la page où je fais le choix de l'ordre ....

SCRIPT :

<?
session_name('ordo');
session_start();
?>
<html>
<head>
<title>ordonner</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<script>
function reset_envoyer(){
document.form1.submit();
window.open('../confirmation.php', 'confirmation', 'width=300,height=300,scrollbars=no');
}
</script>

<body bgcolor="#FFFFE1" text="#000099">
<font face="Verdana" size=6 color="#FF8040">
<center>
Démonstrations
</center>
</font> <br>
<form name="form1" method="POST" action="./ordonnedemo.php" >
<blockquote>
<blockquote>
<p>
<input type="radio" name="radiobutton" value="date">Classer par date</input>
</p>
<p>
<input type="radio" name="radiobutton" value="alpha">Classer par ordre alphab&eacute;tique</input>
<br>
<br>
</p>
<center>
<input type="Button" name="Button" value="Enregistrer les modifications" onClick="reset_envoyer()">

</center>
<?if ($radiobutton=="date"){
$ordre=="date";
}elseif($radiobutton=="alpha"){
$ordre=="alpha";
}
session_register('ordre');
?>

</blockquote></blockquote>
</form>
</body>
</html>




C'est un peu plus court que le précédent j'ai employé la dernière methide mais ça marche tjrs pas
De plus dreamweaver n'aime pas mes </input> ??????????? :paf
Guizmo Guizmoicon_post
avec dream pas besoin de fermer la balise input
bibi bibiicon_post
OK mais c koi le pb alors car je ne l'avais pas mise au début et ça marchait pas mieux..... :-|
Tribal-Dolphin Tribal-Dolphinicon_post
Ben déjà, on vois pas ta requete SQL donc ça aide pas :-D

Mais je dirais regarde si tu à bien un champ nommé "date" et un autre nommé "alpha" dans ta table.
bibi bibiicon_post
Je n'ai pas de champs alpha et date(enfin j'ai un date mais je m'en sert pas dans la requete)
j'ai mis date et alpha mais j'aurai très bien pu mettre 1 et 2 c'est juste pour déterminer quelle requete je dois utiliser ..

Le probleme c'est que je n'arrive pas à utiliser la valeur des boutons radio....



début du script de la page d'affichage :

<?
session_name('ordo');
session_start();

$HttpServer=$HTTP_HOST;
$host="localhost";
$user="root";
$pass="";
$bdd="bdplib";
@mysql_connect($host,$user,$pass) or die ("impossible de se connecter");
@mysql_select_db("$bdd") or die ("impossible de se connecter");

if($ordre=="date"){
$query="SELECT * FROM Informations WHERE Informations.Type='Demonstration' AND Informations.Valid='OUI' AND Informations.Langue='UK' ORDER BY Id ;";
}elseif($ordre=="alpha"){
$query="SELECT * FROM Informations WHERE Informations.Type='Demonstration' AND Informations.Valid='OUI' AND Informations.Langue='UK' ORDER BY NameTitle ;";
}else{
$query="SELECT * FROM Informations WHERE Informations.Type='Demonstration' AND Informations.Valid='OUI' AND Informations.Langue='UK' ORDER BY Id ;";

}
bibi bibiicon_post
Apparement si j'utilise une session mes informations seront perdu à la connexion suivante, alors que je voudrai que les infos restent en memoire pour que je puissent decider de l'ordre d'affichage....

Faut il obligatoirement que je crée un nouvelle table avec les informations relatives à l'ordre que je désire ??? (je crois bien que oui)