2010-07-25 4 views
0

Voici mon code en php. J'ai une page de confirmation de carte de crédit php, avec 2 bouton, modifier les détails et soumettre. J'ai un fichier init qui va effectuer des tâches basées sur ce que cc_confirm est et ce que editval est, confirmer et modifier les détails respectivement.variables cachées pour les boutons causant des problèmes

if($_POST['cc_confirm1']=='y' && $_POST['$editval']!='y' && !isset($editval)) {echo '<input name="submitbtn" type="submit" value="Edit Details" /><input name="editval" type="hidden" value="y" /><input name="cc_confirm" type="hidden" value="n" />';
} if($_POST['cc_confirm1']=='y' && $_POST['$editval']!='y' && !isset($editval)){ echo '<input name="submitbtn1" type="submit" value="Submit Card" /><input name="card1" type="hidden" value="y" /><input name="cc_confirm" type="hidden" value="y" />';

Maintenant, le problème est, parce que je suis en utilisant deux objets cachés, toujours celui en bas est en cours. Pour ce code, si j'appuie sur les détails d'édition, les détails sont soumis, la carte de crédit est en cours d'exécution et ensuite la page d'édition est affichée après cela, ce qui ne sert pas le but.

Si j'échange les deux codes de bouton, alors même pour la carte d'envoi, il affiche uniquement les détails de la page d'édition sans soumettre de carte. J'ai essayé de changer le nom des boutons mais aucune utilisation. Comment puis-je éviter ce problème? Appréciez tout effort pour résoudre.

+0

@Scorpion King: Pourquoi utilisez-vous des boutons cachés !!? – sikas

+0

Je les utilise parce que mon cms est construit de telle manière. Je ne suis pas capable d'utiliser une autre méthode. Si je le faisais, cela briserait tout le code des systèmes de cartes de crédit, donc je ne suis pas en train de jouer avec. –

+0

avez-vous essayé de les définir comme désactivés? au lieu de caché? – sikas

Répondre

0

Pourquoi ne pas diviser les conditions en attribuant une valeur pour les

$continue = 0; 
if($_POST['cc_confirm1']=='y'){ 
$continue++; 
} 
if($_POST['$editval']!='y'){ 
$continue++; 
} 
else{ 
$continue = 0; 
$reason = 'editval'; 
} 
if(!isset($editval)) { 
$continue++; 
} 
else{ 
$continue = 0; 
$reason = 'noeditval'; 
} 
if($continue > 0){ 
echo '<input name="submitbtn" type="submit" value="Edit Details" /><input name="editval" type="hidden" value="y" /><input name="cc_confirm" type="hidden" value="n" />'; 
} 
else{ 
    if($reason == 'editval'){ 
    //Process 
    } 
    elseif($reason == 'noeditval'){ 
    //Process 
    } 
} 
+0

THanks pour votre réponse. Votre code, semble bien, mais le problème est que, les conditions pour les deux boutons sont les mêmes. Donc $ continuer la valeur va augmenter à coup sûr. S'il y avait une condition qui n'est pas la même pour les deux boutons alors je n'aurais eu aucun problème. Ces deux boutons doivent être affichés, mais les valeurs cachées doivent être spécifiques au bouton qui est pressé ... :( –

Questions connexes