begin process at 2012 05 29 00:56:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

désactiver bouton


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

désactiver bouton

lundi 10 mai 2010 à 22:51:57 | désactiver bouton

joujma5

bonsoir,j'ai un code sur le quelle je travail depuis un moment et chaque fois je m'aperçoit une erreur,mon problème réside dans le fait que je veux bloquer les boutons qui incrémentent et décrémentent la quantité demandée d'un article lorsque je clique sur valider,tout se passe bien si j'ai un seul article dans le panier mais si jamais j'ajoute de plus les boutons s'affichent.le code est le suivant:

<?php

include_once 'panier.class.php';




/*************************************************************************************************
** déclarations variables **
*************************************************************************************************/
$contenu = "";
$page = null;


/*************************************************************************************************
** affectations variables **
*************************************************************************************************/
$page->maj = isset($_POST["maj_x"]) ? $_POST["maj_x"] : "";
$page->base = ((isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on") ? "https" : "http")."://".$_SERVER["HTTP_HOST"];
$page->dirname = dirname($_SERVER["SCRIPT_NAME"]);
$page->query = isset($_SERVER["QUERY_STRING"]) ? "?".$_SERVER["QUERY_STRING"]."" : "";
$page->protocol = (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on") ? "https" : "http";
$page->action = $page->protocol."://".$_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"].$page->query;
$page->panier = isset($_SESSION['panier']) ? unserialize($_SESSION['panier']) : "";

/*************************************************************************************************
** programme principal **
*************************************************************************************************/
if ($page->maj) {

maj($page);
$showHide = 1; //on doit maintenant afficher commander
} else {

$showHide = 0; // on doit afficher valider
}

// si on doit afficher commander on cree une variable $code qui va contenir le code du javascript
// permettant d'afficher le bouton "commande" et de cacher le bouton "valider"
// sinon on crée une variable $code qui permet de faire le contraire
if ($showHide) {

$code ="javascript:
document.getElementById('maj').style.display='none';
document.getElementById('com').style.display='block'
document.getElementById('plus').style.display='none'
document.getElementById('minus').style.display='none'
document.getElementById('suupp').disabled='true';";
} else {

$code ="javascript:
document.getElementById('maj').style.display='block';
document.getElementById('com').style.display='none';";
}



echo '
<html>
<head>
<title>Consultation Panier</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<script language="JavaScript" type="text/JavaScript">

function check() {

'.$code.';
}
</script>
</head>
<body onLoad="javascript:check();">
<form name="form1" method="post" action="'.$page->action.'" enctype="application/x-www-form-urlencoded">';



$contenu .= Affichages($page);

echo $contenu.'
</form>
</body>
</html>';
$_SESSION["panier"] = serialize($page->panier);


/*************************************************************************************************
** fonctions **
*************************************************************************************************/
// affichage principal
function Affichages(&$page) {
if ($page->panier == "" || (is_object($page->panier) && $page->panier->getNombreArticle() <= 0)) return '<br /><center><h2>Votre panier est vide</h2></center>';

$out = '

<center>
<br />
<table border="0" cellspacing="0" cellpadding="0" width="80%" bgcolor="white">
<tr bgcolor="#FCAA34">
<td align="left" class="titrecell"><b>Designation</td>
<td align="right" class="titrecell"><b>P.U. (HT)</td>
<td align="right" class="titrecell"><b>Quantite</td>
<td align="right" class="titrecell"><b>Total HT</td>
<td align="right" class="titrecell"><b>Total TTC</td>
<td align="right" class="titrecell"><b>Supprimer</td>
</tr>';

foreach ($page->panier->article as $numserie => $val) {
$des1=str_replace(' ','',$numserie);
$des=str_replace('-','',$des1);
$out .= '
<tr bgcolor="#DAD9D7">
<td>'.$des.'</td>
<td align="right">'.$page->panier->getPrixArticle($numserie).'&nbsp;DT</td>
<td align="right">
<table cellpadding="0" cellspacing="0" border="0">
<tr valign="middle">
<td><input type="text" name="qte_'.$numserie.'" value="'.$page->panier->getQteArticle($numserie).'" readonly size="4" /></td>
<td><a href="#" onclick="document.form1.qte_'.$numserie.'.value++;return false"><img id="plus" src="images/plus.gif" width="14" height="10" border="0" hspace="0" vspace="0"/></a><br /><a href="#" onclick="if(document.form1.qte_'.$numserie.'.value>1){document.form1.qte_'.$numserie.'.value--;return false}"><img id="minus" src="images/moins.gif" width="14" height="10" border="0" hspace="0" vspace="0" /></a></td>
</tr>
</table>
</td>
<td align="right" class="intitule">'.$page->panier->getMontantArticle($numserie).'&nbsp;DT</td>
<td align="right" class="intitule">'.$page->panier->getMontantTTCArticle($numserie).'&nbsp;DT</td>
<td align="right" class="intitule"><input type="checkbox" name="suppr_'.$numserie.'" id="suupp"/></td>
</tr>';
}

$out .= '
<tr bgcolor="#DAD9D7">
<td colspan="6"></td>
</tr>
<tr bgcolor="#DAD9D7">
<td colspan="5" align="right" class="Style1">Sous-Total HT :</td>
<td align="right" class="intitule">'.$page->panier->getTotalHT().'&nbsp;DT</td>
</tr>
<tr bgcolor="#DAD9D7">
<td colspan="5" align="right" class="Style1">Total HT :</td>
<td align="right" class="intitule">'.$page->panier->getTotalFinalHT().'&nbsp;DT</td>
</tr>
<tr bgcolor="#DAD9D7">
<td colspan="5" align="right" class="Style1">TVA ('.$page->panier->getTVA().'&nbsp;%) :</td>
<td align="right" class="intitule">'.$page->panier->getTotalFinalTVA().'&nbsp;DT</td>
</tr>
<tr bgcolor="#DAD9D7">
<td colspan="5" align="right"><b>Total TTC :</b></td>
<td align="right" class="intitule"><b>'.$page->panier->getTotalFinalTTC().'&nbsp;DT</b></td>
</tr>
<tr bgcolor="#DAD9D7">
<td colspan="6"><center><hr width="20%"/></center></td>
</tr>
<tr bgcolor="#DAD9D7">
<td colspan="6" align="center"><input type="image" name="maj" id="maj" src="images/valider.gif"/><a href="http://127.0.0.1/Projet/panier/commande.php"><input type="hidden" name="tot" value='.$page->panier->getTotalFinalTTC().'><input type="image" id="com" name="com" src="images/commander.gif" /></a></td>

</tr>
<tr bgcolor="#DAD9D7">
<td colspan="6"><center><hr width="20%"/></center></td>
</tr>
</table>
</center>';$_SESSION["tot"] = $page->panier->getTotalFinalTTC();

return $out;
}

function maj(&$page) {
foreach ($_POST as $cle => $valeur) {
if (preg_match("/suppr_(.*)/", $cle, $res)) $page->panier->supprimerArticle($res[1]);
if (preg_match("/qte_(.*)/", $cle, $res)) $page->panier->miseAJourQteArticle($res[1], $valeur);
}

if ($page->panier->getNombreArticle() <= 0) {
$page->panier->destroy();
$page->panier = null;
}
}
?>
mardi 11 mai 2010 à 10:55:34 | Re : désactiver bouton

Morphinof

Ah j'ai eu du mal comprendre ce que tu voulais dire mais il est pourtant si evident que c'est normal que sa marche avec 1 article et pas x article ! :D

Tu n'as pas remarque une chose importante ici :

$code ="javascript:
document.getElementById('maj').style.display='none';
document.getElementById('com').style.display='block'
document.getElementById('plus').style.display='none'
document.getElementById('minus').style.display='none'
document.getElementById('suupp').disabled='true';";
}

Alors ? :) Non toujours pas ?
D'accord alors en fait ce qui ce passe c'est que ton javascript ne desactive que une seule balise plus et minus car tu utilise getElementById, un id etait unique sa en desactive qu'un seul et c'est le premier trouve ! Meme si tout tes autres boutons on l'id minus sa suffit pas du tout !

Alors voici une solution :

Ca serait de generer l'id de tes boutons comme sa :
'<img id="minus_'.$numserie.'"' ... et surtout apres sa de changer ta fonction javascript pour qu'elle desactive tout les minus un truc du genre :

$code ='javascript:'
foreach ($page->panier->article as $numserie => $val) {
...
$code .='
document.getElementById("plus_'.$numserie.'").style.display="none";
document.getElementById("minus_'.$numserie.'").style.display="none";
...
}

Mais je te conseilles d'essayer d'en trouver une meilleure plutot orientee php ^^
mardi 11 mai 2010 à 13:26:51 | Re : désactiver bouton

joujma5

merci pour ton aide mais pourra tu m'expliquer d'avantage le code car je l'ai essayé mais ça n'a pas marché.merci
mardi 11 mai 2010 à 13:43:29 | Re : désactiver bouton

Morphinof

Réponse acceptée !
Je n'ai pas tout ecrit mais je vais te re-expliquer le principe :

Ton idee c'est de test si tu est en mise a jour d'une page et donc si c'est le cas tu adapte ta fonction javascript pour qu'elle s'occupe de cacher tes boutons.

Seulement tu leur a tous donne le meme id a tes bouton c'est ca le souci car quand tu fait un document.getElementById le javasacript ne va pas savoir les differencier et va selement recursivement parcourir l'abre DOM, trouver ton PREMIER bouton ayant l'id demander et dire ah ok le voila.
C'est pour sa que sa marche avec un seul produit vu que tu n'a qu'un seul bouton qui s'appelle "plus" et un seul "minus".

Pour corriger le tir ce que je te mettait au dessus va permettre de differencier tes bouttons en leur donnant un id unique, je vais te detailler ca avec que le bouton plus vu que c'est la meme chose pour le minus :

Voici le lien que tu genere :
<a href="#" onclick="document.form1.qte_'.$numserie.'.value++;return false"><img id="plus" src="images/plus.gif" width="14" height="10" border="0" hspace="0" vspace="0"/></a><br />

Comme on peu le voir ton img a pour id "plus" pour chacun de tes articles.
Si tu rajoutes ta variable $numserie a leur id tu vas pouvoir les identifier de maniere sure dans ta page, il faudrai donc generer :

<a href="#" onclick="document.form1.qte_'.$numserie.'.value++;return false"><img id="plus_'.$numserie.'" src="images/plus.gif" width="14" height="10" border="0" hspace="0" vspace="0"/></a><br />

maintenant toutes tes images ayant un id comme suit : "plus_tonNumeroDeSerie" tu va pouvoir les cacher toutes en generant le javascript suivant a la place de l'actuel en changeant les lignes que j'ai corriges :

$code ='javascript:'
foreach ($page->panier->article as $numserie => $val) {
...
$code .='
document.getElementById("plus_'.$numserie.'").style.display="none";
document.getElementById("minus_'.$numserie.'").style.display="none";
...
}

Voila :)
mardi 11 mai 2010 à 13:50:39 | Re : désactiver bouton

joujma5

merci bien pour votre aide
mardi 11 mai 2010 à 14:16:52 | Re : désactiver bouton


Cette discussion est classée dans : page, code, server, maj, panier


Répondre à ce message

Sujets en rapport avec ce message

afficher bouton commander [ par joujma5 ] bonjour, je travaille sur un panier et je ne veux afficher le bouton commander qu'une fois le client a cliqué sur un bouton valider permettant de reca Besoin d'aide : le traitement du panier ne fonctionne pas [ par missulie ] Bonjour, Je viens de créer un site marchand avec Dreamweaver en suivant les étapes d'un livre car je suis débutante en php, mais je coince sur la page Caddie et Mysql [ par Anthotill ] Bonjour,J'ai trouvé un bon script de caddie sur le site (http://www.phpcs.com/codes/CLASS-PANIER-CADDIE_29499.aspx)Je voudrais le modifier pour que la window.open code ??? [ par gilissen ] Bonjour,Alors voici mon problème1. J'ai crée un page php dans laquelle, j'ai mis un liens vers un autre page php<a target="_blank" href="<A href="http Récupérer du code d'une page html [ par Metaldark ] Salut ! [;)] Bon, j'explique mon problème : j'ai fait un script qui gere des templates et génére des pages html statiques.Par exemple, le template es Recuperer des objets [ par ov3rdoze ] BonjourJe suis en train de réaliser un panier pour un site de vente. J'ai fai une classe panier que j'instancie dans l'index.Jusque la tout se passe b plusieurs produit sur une meme commande [ par lebelge95 ] Bonjour. Je voudrai savoir si quelqu'un aurait déjà un bout de code ou un entier ( ) qui permet de gérer un enregistrement d'une commande, de plusieu un problème avec mon formulaire en utilisant php et mysql [ par lebienestrare ] Bonjour tout le monde,j'ai un problème avec ma base de données(connexion entre php et mysql),le problème est: J'ai créé un site en php,j'ai fait une f variables de sessions qui s'effacent [ par jekifvb6 ] Bonjour à toutes et tous,J'essaie de créer un ensebmle de formulaires complexes, sur plusieurs pages, mais j'ai l'impression d'avoir déjà un gros souc empecher affichage code source css [ par sidf ] bonjour à tousa la lecture du code source html d'une page, on peut connaitrele nom d'une page .css incluse avec @importcomme on peut donc saisir direc


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales