Problème de $_POST

Signaler
Messages postés
8
Date d'inscription
lundi 12 mai 2003
Statut
Membre
Dernière intervention
1 avril 2005
-
Messages postés
8
Date d'inscription
lundi 12 mai 2003
Statut
Membre
Dernière intervention
1 avril 2005
-
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

Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
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
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
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>
Messages postés
8
Date d'inscription
lundi 12 mai 2003
Statut
Membre
Dernière intervention
1 avril 2005

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
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
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>
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
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
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
un ^^

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




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
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
Messages postés
8
Date d'inscription
lundi 12 mai 2003
Statut
Membre
Dernière intervention
1 avril 2005

Merci beaucoup,

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

GOURBY