Problème de $_POST

cs_gourby Messages postés 8 Date d'inscription lundi 12 mai 2003 Statut Membre Dernière intervention 1 avril 2005 - 28 mars 2005 à 13:10
cs_gourby Messages postés 8 Date d'inscription lundi 12 mai 2003 Statut Membre Dernière intervention 1 avril 2005 - 29 mars 2005 à 07:25
voila, j'ai une ligne de code:

$caddie->addArticle(&$article, $_POST['fQuantite'], $_POST['fport']);

elle est censée rajouter dans mon caddie une ligne avec le nom de l'article, la quantité commandée et les frais de port.
Cependant, elle ne rajoute rien.
Par contre, si j'utilise la même ligne sans $_POST['fport']) l'article et la quantité sont bien ajoutés au caddie.

Il doit y avoir un problème de syntaxe mais où???

Merci d'avance pour votre aide.

GOURBY

8 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
28 mars 2005 à 15:40
ce n'est pas un problème de synthaxe...



déja, je ne vois pas pourquoi tu passes article par référence...



ensuite, tu ne donne qu'une ligne de code alros que le bug doit être dans la class...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
28 mars 2005 à 16:17
Salut,



passage par référence => gain de rapidité (encore que là...)



Ensuite j'appuie coucou, ton problème vient surement de ta fonction...

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_gourby Messages postés 8 Date d'inscription lundi 12 mai 2003 Statut Membre Dernière intervention 1 avril 2005
28 mars 2005 à 20:29
Bin voila la class

<?
class gestionCaddie {
// Eléments de notre panier
var $items;
//var $nbrArticle;
/**
@constructor fait rien de special done la structure de donnees
*/
function gestionCaddie()
{
$this->items = array () ;
//$this->nbrArticle = 0 ;
}

/**
@param array d'article ajoute une liste d'article au panier
la clef est l'id de l'article et la valeur associer la quantite
*/
function addListeArticle($attributeArray = NULL)
{
global $db ;
if (! is_array($attributeArray) )
return NULL ;

$param = implode ( ',' , array_keys($attributeArray) ) ;

$sql_article = '
select
id ,
id as idArticle,
idCategorie ,
designation_fr,
descriptif_fr,
designation_es,
descriptif_es,
designation_pt,
descriptif_pt,
prixHT,
reference
from article
WHERE id in ' . '(' .$param . ')' ;
//debug ($db->getAssoc($sql_article, TRUE, $param) ) ;
//debug ($db->getAssoc($sql_article, FALSE , $param)[42] ) ;
//debug ( $test ) ;
$articleArray = $db->getAssoc($sql_article, TRUE);
//debug ($db->last_query, '$db->last_query' ) ;
foreach ($articleArray as $key => $value)
{
//debug ( new article ($value), 'new article ($value)' ) ;
$this->items[$key]['article'] = new article ($value) ;
$this->items[$key]['quantite'] = 1;
$this->items[$key]['port'] = 0;
}
//debug ( $this ) ;
}

function addArticle($_article, $_quantite)
{
//debug ($_article );
$idArticle = $_article->getIdArticle() ;
//debug ($_article->getIdArticle(), '$_article->getIdArticle()');
$this->items[$idArticle]['article'] = $_article;
$this->items[$idArticle]['quantite'] += $_quantite;
$this->items[$idArticle]['port'] += $_port;
//$this->nbrArticle++ ;
}


}
function afficheCaddie($tpl, $bloc, $lang = NULL )
{
$tpl->setCurrentBlock($bloc);
foreach($this->items as $key => $value)
{
// debug (&$key) ;
// debug ($value) ;
$article =& $value['article'] ;

//debug (getPrixLigneHT(&$article)) ;
//return NULL ;
//debug ($article) ;
$article->afficheArticle(&$tpl, $lang ) ;
$tpl->setVariable(array( 'prixLigneHT' => $this->getPrixLigneHT($article) ,
'quantite' => $this->items[$article->idArticle]['quantite'],)) ;
$tpl->parse($bloc);
}
}


function getPrixLigneHT($article)
{
return sprintf ("%.2f", ($article->prixHT + $this->items[$article->idArticle]['port'])* $this->items[$article->idArticle]['quantite']);
}


function afficheTotal($tpl,$bloc)
{
$totalHT = $this->getTotalHT();
$totalTTC = $this->getTotalTTC();
$totalTVA = $this->getTotalTVA($totalHT , $totalTTC);

$tpl->setCurrentBlock($bloc);
$tpl->setVariable(array( 'totalTVA' => sprintf ("%.2f", $totalTVA ),
'totalHT' => sprintf ("%.2f", $totalHT),
'totalTTC' => sprintf ("%.2f", $totalTTC ), )) ;
$tpl->parse($bloc);
}



function delArticle($_article)
{
// test si le parametre en object
// et recherhce son indexe
if (is_object ($_article) === TRUE )
$idArticle = $_article->getIdArticle() ;
else
$idArticle = $_article ;
// si le parametre n'est pas objet c'est son index
//debug ($this->items) ;
if (array_key_exists($idArticle, $this->items)=== TRUE)
unset ($this->items[$idArticle]) ;
}

function getArticle($idArticle)
{
return $this->items[$idArticle]['article'];
}
function getArticleQantite($idArticle)
{
return $this->items[$idArticle]['quantite'];
}
function getport($idArticle)
{
return $this->items[$idArticle]['port'];
}
function getNbrArticle()
{
return count( $this->items) ;
}

function getTotalHT()
{
$total = 0 ;
if (count($this->items) > 0)
{
foreach ($this->items as $key => $value)
{
//debug ($value['article'], '$value[article]') ;
//debug ($value['article']->prix, '$value[article]->prix') ;
//debug ($value['quantite'], '$value[quantite]') ;
$total += ($value['article']->prixHT + $value['port']) * $value['quantite'];
}
}
return (float) $total ;
}
function getTotalTTC00()
{
//return sprintf ("%.2f", $this->getTotalTTC() * 100 ) ;
$t = sprintf ("%.2f", $this->getTotalTTC() ) ;
$t = sprintf ("%u", $t * 100 ) ;
//return (float) sprintf ("%u", $this->getTotalTTC() * 100 );
return $t ;
}
function getTotalTVA($_totalHT , $_totalTTC)
{ if (isset($_totalHT) TRUE && isset($_totalTTC) TRUE )
return (float) $_totalTTC - $_totalHT ;
else
return (float) getTotalTTC() - getTotalHT();
}

function getTotalTTC()
{
$total = 0 ;
if (count($this->items) > 0)
{
foreach ($this->items as $key => $value)
{
//debug ($value['article'], '$value[article]') ;
//debug ($value['article']->prix, '$value[article]->prix') ;
//debug ($value['quantite'], '$value[quantite]') ;
$total += $value['article']->prixTTC * $value['quantite'];
}
}
return (float) $total ;
}
function sauvegarde($client, $commande)
{
global $db;
if ( $client->id == '' )
return NULL ;
if ( $commande->id == '' )
return NULL ;
//delete des anciens object en cas de mise a jour $sqlDelete 'DELETE from art2cmd where idCommande ?' ;
$result = $db->query($sqlDelete, array( $commande->id ) );
//debug ( $db->last_query , '$db->last_query ' ) ;
foreach ( $this->items as $value)
{
//debug ($value) ;
$article =&$value['article'] ;
$article->sauvegarde(&$commande, $value['quantite'] );
$article->sauvegarde(&$commande, $value['port'] );
}
}





?>

GOURBY
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
28 mars 2005 à 20:32
je vois addarticle($machin,$machin) et quand tu appelles ta fonction tu fais addarticle($machin,$machin,$machin)



tu donnes trois arguments alors que la fonction n'en accepte que deux, normal que ça fonctionne pas...

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0

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

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
28 mars 2005 à 20:34
t'envoi deux paramètres de trop...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
28 mars 2005 à 20:52
un ^^

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
28 mars 2005 à 20:55
oui :/

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
cs_gourby Messages postés 8 Date d'inscription lundi 12 mai 2003 Statut Membre Dernière intervention 1 avril 2005
29 mars 2005 à 07:25
Merci beaucoup,

je n'avais pas vu ça, comme quoi un regard nouveau ça aide.

GOURBY
0
Rejoignez-nous