2012-08-07 1 views
0

J'ai vue Zend en PHP avec une forme:comment définir une variable de commande en vue d'une forme post

<form action="https://example.com/checkout/" name="info" method="post"> 
    <div id="payment"> 
     <div id="paypal> 
      <?php $this->is_paypal_payment = true; ?> 
     </div> 
     <div id="credit_card> 
      <?php $this->is_paypal_payment = false; ?> 
     </div> 
    </div> 
</form> 

Lorsqu'un utilisateur clique sur le bouton Envoyer, comment puis-je définir la variable d'instance dans le controlle?

C'est ce que j'ai essayé qui n'a pas fonctionné.

Controller:

$this->view->payment_option_paypal = false; // initialized value 

$payment_method_option = $this->_getParam('payment_option_paypal', null); 
if (!is_null($payment_method_option)) { 
    if ($payment_method_option == 'paypal') { 
     $this->_is_paypal = true; 
    } 
} 

Vue:

<div id="paypal" style="display: none;"> 
    <?php $this->payment_option_paypal = "paypal"; ?> 
    <img src="paypal.gif" style="margin-right:20px;"> 
</div> 

Après avoir cliqué sur soumettre, la fonction the _getParam() ne capture pas la chaîne "paypal" que la vue définie pour variable d'instance dans le contrôleur $this->payment_option_paypal

Des idées sur ce qui ne va pas et comment s'y prendre?

+0

je ne suis pas familier avec zend-cadre mais passer les valeurs de la vue au contrôleur fonctionne généralement via les champs cachés d'entrée (dans le cas comme vous l'avez spécifié) ou avec des éléments html normaux comme checkboxes, textrea, select etc .. avez-vous essayé ' '? –

+0

vous pouvez utiliser le _getParam pour le champ d'entrée ou pour le champ caché de sorte que vous ne recevez pas la valeur de la div dans ce mathod – Jalpesh

Répondre

2

en vous page phtml vous devez utiliser comme cette

<div id="paypal" style="display: none;"> 
    <input type="hidden" name="paypalname" value="<?php echo $this->payment_option_paypal = "paypal"; ?>" id="paypalname"/> 
    <img src="paypal.gif" style="margin-right:20px;"> 
</div> 

et le contrôleur

function yourAction() 
{ 
     if ($this->_request->isPost()) 
     { 
     $paypalvalue=$this->_getParam('paypalname'); 
     } 
} 

J'espère que cela vous aide et si vous avez un problème dans ma réponse alors faites le moi savoir.

+0

Merci, cela a fonctionné! – user1207994

+0

Bravo !!! –

1

un div ne se soumettra pas des données aussi tout ce qui doit être rendu en HTML doit être echo'ed:

<form action="https://example.com/checkout/" name="info" method="post"> 
    <div id="payment"> 
     <div id="paypal> 
      <?php echo $this->is_paypal_payment = true; ?><!-- maybe should be an input element of kind and echo the $this-> statement --> 
     </div> 
     <div id="credit_card> 
      <?php echo $this->is_paypal_payment = false; ?><!-- maybe should be an input element of kind and echo the $this-> statement --> 
     </div> 
    </div> 
</form> 

nouveau ECHO:

<div id="paypal" style="display: none;"> 
    <?php echo $this->payment_option_paypal = "paypal"; ?> 
    <img src="paypal.gif" style="margin-right:20px;"> 
</div> 
Questions connexes