Convertisseur de devises

Par wenz, il y a 11 ans


Bonjour,
je voudrais mettre ne place un convertisseur de devise sur un site

mon problème c'est que je ne sais pas comment debuter, quelqu'un pourrait me mettre sur le chemin?
Merci.

11 réponses

Azorgh, il y a 11 ans

Bonjour,

Commençons pas le commencement.
Connais tu les languages de programmations ? Plus précisément le Web ?
Si oui que connais-tu ?

Veux tu faire ca avec CakePHP ? Ou as tu simplement posté dans la mauvaise section ?

wenz, il y a 11 ans

je developpe leprojet avec cakephp deja, je voudrais avoir une idée sur le developpement du module de convertisseur, j'ai pas posté dans la mauvaise section

wenz, il y a 11 ans

Merci Grafikart pour ta réponse, j'ai mis ça en place, avec une devises tout marche bien, mais j'ai un problème, je m'explique je voudrais convertir le montant en plusieurs devises.
voic comment j'ai procéder: le code mon controller:

$this->layout='backoffice'; if (!$this->Auth->user('id')) { $this->redirect('/users/login'); } $from= 'EUR'; $amount = 1; $to = isset($_POST['to']) ? $_POST['to'] : ''; $rawData = $this->currencyConvert($from,$to,$amount); $regex = '#\<span class=bld\>(.+?)\<\/span\>#s'; preg_match($regex, $rawData, $converted); $result = $converted[0]; $listTo = ' <div><select name="to" class="form-control"> <option value="CFA Franc BCEAO (CFA)">CFA Franc BCEAO(CFA)</option> <option value="Ghanaian Cedi (GHS)">Ghanaian Cedi (GHS)</option> <option value="Nigerian Naira(NGN)">Nigerian Naira(NGN)</option> <option value="South African Rand (ZAR)">South African Rand (ZAR)</option> <option value="CFA Franc BEAC (FCFA)">CFA Franc BEAC (FCFA)</option> <option value="Congolese Franc (CDF)">Congolese Franc (CDF)</option> <option value="Eur (EURO)">Eur(EURO) </option> <option value="USD(US Dollar)">USD(US Dollar)</option> </select> </div> '; $listTo = str_replace("\"$to\"","\"$to\" selected",$listTo); debug($listTo); $this->set('result',$result); $this->set('listTo',$listTo); $this->set('amount',$amount); $this->set('from',$from);

j'ai cette erreur: Notice (8): Undefined offset: 0 .
Je declare mal ma variable $to? ou il ya une erreur quelque part?
Merci

JC_Pires, il y a 11 ans

C'est quoi ce code Html dégueux dans ton Controller???? Tu peut pas faire un tableau style:

$listTo = [ 'CFA' => 'CFA Franc BCEAO (CFA)', 'GHS' => 'Ghanaian Cedi (GHS)', 'NGN' => 'Nigerian Naira(NGN)', 'ZAR' => 'South African Rand (ZAR)', ... // le reste ]

Après dans ta vue :

<div> <?= $this->Form->select('to', $list, ['class' => 'form-control]);?> </div>

Source du Helper form et de la méthode select: http://book.cakephp.org/2.0/fr/core-libraries/helpers/form.html#FormHelper::select

Après tu aurais pus for each comme ça sans le Helper:

<div> <select name="to" class="form-control"> <?php foreach($listTo as $trigramme => $defPays):?> //exemple: $trigramme => CFA $defPays => CFA Franc BCEAO(CFA) <option value="<?= $trigramme;?>" <?php if($_POST['to'] == $trigramme):?> selected <?php endif;?> > <?= $defPays;?> </option> <?php endforeach;?> </select> </div>

Bon rien que ça déjà ça va faire du bien. ZERO code HTML dans un Controller, dans la mesure du possible "évidemment".

Bon après pour ton vrai problème, ou est vraiment le problème sur quelle variable? il te dis juste qu'il n'arrive pas à trouver l'index 0 du tableau qui devrais se trouver dans la variable où se situe le problème, laquelle ???

wenz, il y a 11 ans

Merci pour la correction, quand je declare une seule devise dans la variable $to tout marche mais avec le tableau avec le champ select , j'ai l'erreur dont je parlais av

JC_Pires, il y a 11 ans

Tu pourrais donner ton formulaires stp, ainsi que le debug des données postées "$this->request->data" d'ailleur j'ai mis $_POST, mais récupères tes données avec $this->request->data['nom de l'input'].

wenz, il y a 11 ans

Au fait ce que je voulais c'est quand on selection une devise le montant doit changer, je sais que je dois faire ça avec javascript on change mais je ne sias pas comment je dois faire ça , pour dire la vérité je ne suis pas très callé en javascript.
voici le code de ma page formulaire

<?php $this->set('title_for_layout', 'Abonnement sur le site');?> <div class="row" id="start"> <div class="col-md-12" align="center"> <h1><i class="fa fa-credit-card"></i> <?php echo __('ABONNEMENT',true); ?></h1> <?php echo __("Choisissez l'offre dont vous avez besoin",true);?><br /><br /> </div> </div><br /> <div class="row"> <div class="col-md-3 right"></div> <div class="col-md-6"> <?php echo $this->Session->Flash();?> </div></div><br /> <div class="row"> <div class="col-md-2 right"></div> <div class="col-md-8"> <div class="row pricing-tables"> <div class="col-md-3 col-sm-3"> <div class="pricing-table"> <div class="plan-name"> <h3><?php echo __('Abonnement 1 M',true);?></h3> </div> <div class="plan-price"> <div class="price-value"><?php echo $amount.$from = $result;?> <span></span></div> <div class="interval">par mois</div> </div> <div class="plan-list"> <ul> <li><?php echo __('Personnalisation page profile',true);?></li> <li><strong>40GB</strong> Transfer</li> <li><strong>10</strong> Domains</li> </ul> </div> <div class="plan-signup"> <?php echo $this->Form->create('Abonnement',array('url'=>array('controller'=>'payment','action'=>'abonnement'))); echo $this->Form->input('price', array('value'=>'2','type'=>'hidden')); echo $this->Form->input('duree', array('value'=>'1','type'=>'hidden')); echo $this->Form->submit(__("S'ABONNER",true),array('id'=>'paypal-pay')); ?> <script src='https://www.paypalobjects.com/js/external/dg.js' type='text/javascript'></script> <script> var dg = new PAYPAL.apps.DGFlow({ // the HTML ID of the form submit button which calls setEC trigger: 'paypal-pay', // the experience type: instant or mini expType: 'instant' }); </script> </div> </div> </div> <div class="col-md-3 col-sm-3"> <div class="pricing-table"> <div class="plan-name"> <h3><?php echo __('Abonnement 3 M',true);?></h3> </div> <div class="plan-price"> <div class="price-value">5&euro;<span>.00</span></div> <div class="interval">par mois</div> </div> <div class="plan-list"> <ul> <li><?php echo __('Personnalisation page profile',true);?></li> <li><strong>40GB</strong> Transfer</li> <li><strong>10</strong> Domains</li> </ul> </div> <div class="plan-signup"> <?php echo $this->Form->create('Abonnement',array('url'=>array('controller'=>'payment','action'=>'abonnement'))); echo $this->Form->input('price', array('value'=>'5','type'=>'hidden')); echo $this->Form->input('duree', array('value'=>'3','type'=>'hidden')); echo $this->Form->submit(__("S'ABONNER",true),array('id'=>'paypal-pay1')); ?> <script src='https://www.paypalobjects.com/js/external/dg.js' type='text/javascript'></script> <script> var dg = new PAYPAL.apps.DGFlow({ // the HTML ID of the form submit button which calls setEC trigger: 'paypal-pay1', // the experience type: instant or mini expType: 'instant' }); </script> </div> </div> </div> <div class="col-md-3 col-sm-3"> <div class="pricing-table"> <div class="plan-name"> <h3><?php echo __('Abonnement 6 M',true);?></h3> </div> <div class="plan-price"> <div class="price-value">11&euro;<span>.00</span></div> <div class="interval">par mois</div> </div> <div class="plan-list"> <ul> <li><?php echo __('Personnalisation page profile',true);?></li> <li><?php echo __('Bouton',true);?></li> <li><strong>10</strong> Domains</li> </ul> </div> <div class="plan-signup"> <?php echo $this->Form->create('Abonnement',array('url'=>array('controller'=>'payment','action'=>'abonnement'))); echo $this->Form->input('price', array('value'=>'11','type'=>'hidden')); echo $this->Form->input('duree', array('value'=>'6','type'=>'hidden')); echo $this->Form->submit(__("S'ABONNER",true),array('id'=>'paypal-pay2')); ?> <script src='https://www.paypalobjects.com/js/external/dg.js' type='text/javascript'></script> <script> var dg = new PAYPAL.apps.DGFlow({ // the HTML ID of the form submit button which calls setEC trigger: 'paypal-pay2', // the experience type: instant or mini expType: 'instant' }); </script> </div> </div> </div> <div class="col-md-3 col-sm-3"> <div class="pricing-table"> <div class="plan-name"> <h3><?php echo __('Abonnement 12 M',true);?></h3> </div> <div class="plan-price"> <div class="price-value">23&euro;<span>.00</span></div> <div class="interval">par mois</div> </div> <div class="plan-list"> <ul> <li><?php echo __('Personnalisation page profile',true);?></li> <li><?php echo __('Bouton',true);?></li> <li><strong>10</strong> Domains</li> </ul> </div> <div class="plan-signup"> <?php echo $this->Form->create('Abonnement',array('url'=>array('controller'=>'payment','action'=>'abonnement'))); echo $this->Form->input('price', array('value'=>'23','type'=>'hidden')); echo $this->Form->input('duree', array('value'=>'12','type'=>'hidden')); echo $this->Form->submit(__("S'ABONNER",true),array('id'=>'paypal-pay3')); ?> <script src='https://www.paypalobjects.com/js/external/dg.js' type='text/javascript'></script> <script> var dg = new PAYPAL.apps.DGFlow({ // the HTML ID of the form submit button which calls setEC trigger: 'paypal-pay3', // the experience type: instant or mini expType: 'instant' }); </script> </div> </div> </div> </div> <div class="row"> <div class="col-md-2 right"></div> <div class="col-md-8" align="center"> <div class="row"> <div class="col-md-4 right"></div> <div class="col-md-4"> <?php echo __('Afficher prix en');?> <?php echo $this->Form->select('to', $listTo, array('class' => 'form-control'));?> <?php echo $this->Form->End();?><br /><br /> </div> </div> </div> </div> </div></div> <br /><br /> <?php echo $this->Html->script('bootstrap');?> <?php echo $this->Html->script('http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js');?> <?php echo $this->Html->script('jquery.js');?>

Merci

JC_Pires, il y a 11 ans

Un problème de concaténation

si tu voulais faire: 2 * 1.0586

et que tu obtiens 21.0586 c'est que la multiplication ne se fais pas mais que ce sont deux chaines de caractère qui se collent

wenz, il y a 11 ans

Bonjour, la convertion des devises marche bien, mais j'ai un problème , je m'explique
je voudrais convertir 2€ , 5€ et 11€, je parts du principe je convertis 1€ et je multiplis le resultat pas 2 , 5 et 6 mais à ma supprise ça ne marche pas par exemple pour 1€ en $ us j'ai 21.0586 USD au lieux d'avoir 2(1.0586 usd).
Quelqu'un a une idée?
Merci

wenz, il y a 11 ans

Merci, c'est corrigé