2010-01-08 3 views
0

J'ai une fenêtre qui contient un formulaire d'inscription d'abonné. Après que l'utilisateur ait cliqué sur s'abonner, je souhaite que le formulaire soit supprimé et affiche un message de remerciement. Tout cela doit fonctionner en utilisant php.Une fois le formulaire envoyé, remplacez le contenu par un message utilisant PHP uniquement

Ci-dessous ce que j'ai jusqu'à présent, mais le popup ne reste pas en place et lorsque vous cliquez à nouveau sur le bouton d'abonnement, il affiche les erreurs de validation de formulaire parce que la variable 'subscribeSubmit' est définie. Alors, comment garder la fenêtre ouverte et remplacer le formulaire par le message de bienvenue?

S'il vous plaît, aidez, merci!

<?php 
if(isset($_POST['subscribeSubmit'])){ 

unset($error); //errasing error variable 


//**************finding errors in form******************* 

if(strlen($_POST['Fname']) <= 0) {$error[] = "Your name is required.";} 

if(!eregi("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,6}$", stripslashes(trim($_POST['emailPopin'])))) {$error[] = "Your e-mail address is not valid.";} 

if(strlen($_POST['emailPopin']) <= 5) {$error[] = "You have to enter at least one e-mail to subscribe.";} 

if(strlen($_POST['industry']) <= 0) {$error[] = "Your industry is required.";} 

if(strlen($_POST['country']) <= 0) {$error[] = "Your country is required.";} 

if(strlen($_POST['zip']) <= 0) {$error[] = "Your zip is required.";} 

//************if there is an error********** 

if(sizeof($error) > 0) 
{ 
report_errors($error); 
subscribe_form();     
} 

//**********if there is no error, we can subscribe them****** 

else 
{ 

//**********Reduce First Name to 30 characters and replace special characters****** 

$name = substr($_POST['Fname'], 0, 30); 

//***** Replaces special characters ****** 
$name = special_letters($name); 


//**********write to data file****** 

//Left out on purpose 

//**********Display thank you message****** 

echo '<p>Thanks for signing up!<br/><a href="#" onClick="window.location.href=window.location.href">Click here to sign up friends.</a></p>'; 

} 

} 

else 

{ 

$Fname = $_POST["Fname"]; 
$email = $_POST["emailPopin"]; 
$leader = $_POST["radiobuttonTeamLeader"]; 
$industry = $_POST["industry"]; 
$country = $_POST["country"]; 
$zip = $_POST["zip"]; 


echo '<form action="" method="post" enctype="multipart/form-data" style="background:#efefef;">'; 

echo '<div style="text-align:left;background:#efefef;padding-bottom:4px;"><p style="line-height:20px; font-size:12px;">Fill in the form below to signup for our free daily newsletter. All fields are Necessary.(<span class="required">*</span>).</p><table id="popupSubscribe-form">'; 

echo '<tr><td class="label"><label for="name">First Name: <span class="required">*</span></label></td><td><input type="text" name="f_name" size="30" value=""></td></tr>'; 

echo '<tr><td class="label"><label for="email">Email: <span class="required">*</span></label></td><td><input type="text" size="30" id="emailPopin" value=""></td></tr>'; 

echo '<tr><td class="label"><label for="email">I Lead A Team: <span class="required">*</span></label></td>'; 

echo '<td><table><tr><td><input type="radio" value="yes" name="radiobuttonTeamLeader" style="width:15px;"><strong style="margin: 0 15px 0 5px;">Yes</strong></td>'; 

echo '<td><input type="radio" value="no" name="radiobuttonTeamLeader" style="width:15px;"><strong style="margin: 0 15px 0 5px;">No</strong></td></tr></table></td>'; 

echo '<tr><td class="label"><label for="industry">Industry: <span class="required">*</span></label></td><td><input type="text" name="industry" size="30" value=""></td></tr>'; 

echo '<tr><td class="label"><label for="country">Country <span class="required">*</span></label></td>'; 

echo '<td><select size="1" class="countryDropDown" name="country">'; 

echo '<option value="us" selected="selected">United States</option>'; 
echo '<option value="ca" >Canada</option>'; 

echo '</select></td></tr>'; 

echo '<tr><td class="label"><label for="email">Zip Code: <span class="required">*</span></label></td><td><input type="text" name="zip" size="30" value=""></td></tr>'; 

echo '<tr><td></td><td><input type="submit" id="subscribeSubmit" value="" name="subscribeSubmit"/></td></tr></table></div>'; 



echo '</form>'; 

} 

} 
+0

Vous dites: 'en cliquant à nouveau sur le bouton d'abonnement, il affiche les erreurs de validation de formulaire'. Donc, il y a des erreurs valides qui apparaissent? Ou êtes-vous en train de dire qu'il n'y a pas d'erreurs réelles et la section des erreurs apparaît incorrectement? –

+0

Non, il n'y a pas d'erreurs valides lors de la soumission du formulaire. Alors qu'est-ce qui se passe est. Je remplis le formulaire, je clique sur m'abonner et la fenêtre disparaît au lieu de montrer le message de remerciement. Je clique ensuite sur le bouton 'cliquez ici pour vous abonner' qui apporte le formulaire et affiche les erreurs de validation. Cela est dû au fait que isset ($ _ POST ['subscribeSubmit']) est défini. Je ne sais pas comment le réparer. – Joe

+0

Ce n'est pas le code que vous devez modifier. Nous devons voir la fonction 'subscribe_form()'. Il semble être celui qui ferme la fenêtre sur vous. – mattbasta

Répondre

0

Est-ce ce que vous allez faire?

<?php 
if(isset($_POST['subscribeSubmit'])){ 

    unset($error); //errasing error variable 


    //**************finding errors in form******************* 

    if(strlen($_POST['Fname']) <= 0) {$error[] = "Your name is required.";} 

    if(!eregi("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,6}$", stripslashes(trim($_POST['emailPopin'])))) {$error[] = "Your e-mail address is not valid.";} 

    if(strlen($_POST['emailPopin']) <= 5) {$error[] = "You have to enter at least one e-mail to subscribe.";} 

    if(strlen($_POST['industry']) <= 0) {$error[] = "Your industry is required.";} 

    if(strlen($_POST['country']) <= 0) {$error[] = "Your country is required.";} 

    if(strlen($_POST['zip']) <= 0) {$error[] = "Your zip is required.";} 

    //************if there is an error********** 

    if(sizeof($error) > 0) 
    { 
     report_errors($error); 
     subscribe_form();     
    } 

    //**********if there is no error, we can subscribe them****** 

    else 
    { 

     //**********Reduce First Name to 30 characters and replace special characters****** 

     $name = substr($_POST['Fname'], 0, 30); 

     //***** Replaces special characters ****** 
     $name = special_letters($name); 


     //**********write to data file****** 

     //Left out on purpose 

     //**********Display thank you message****** 

     $thank_you_message = '<p>Thanks for signing up!<br/><a href="#" onClick="window.location.href=window.location.href">Click here to sign up friends.</a></p>'; 

    } 

    $Fname = $_POST["Fname"]; 
    $email = $_POST["emailPopin"]; 
    $leader = $_POST["radiobuttonTeamLeader"]; 
    $industry = $_POST["industry"]; 
    $country = $_POST["country"]; 
    $zip = $_POST["zip"]; 

} 

if(!empty($thank_you_message)){ 
    echo $thank_you_message; 
}else{ 

    echo '<form action="" method="post" enctype="multipart/form-data" style="background:#efefef;">'; 

    echo '<div style="text-align:left;background:#efefef;padding-bottom:4px;"><p style="line-height:20px; font-size:12px;">Fill in the form below to signup for our free daily newsletter. All fields are Necessary.(<span class="required">*</span>).</p><table id="popupSubscribe-form">'; 

    echo '<tr><td class="label"><label for="name">First Name: <span class="required">*</span></label></td><td><input type="text" name="f_name" size="30" value=""></td></tr>'; 

    echo '<tr><td class="label"><label for="email">Email: <span class="required">*</span></label></td><td><input type="text" size="30" id="emailPopin" value=""></td></tr>'; 

    echo '<tr><td class="label"><label for="email">I Lead A Team: <span class="required">*</span></label></td>'; 

    echo '<td><table><tr><td><input type="radio" value="yes" name="radiobuttonTeamLeader" style="width:15px;"><strong style="margin: 0 15px 0 5px;">Yes</strong></td>'; 

    echo '<td><input type="radio" value="no" name="radiobuttonTeamLeader" style="width:15px;"><strong style="margin: 0 15px 0 5px;">No</strong></td></tr></table></td>'; 

    echo '<tr><td class="label"><label for="industry">Industry: <span class="required">*</span></label></td><td><input type="text" name="industry" size="30" value=""></td></tr>'; 

    echo '<tr><td class="label"><label for="country">Country <span class="required">*</span></label></td>'; 

    echo '<td><select size="1" class="countryDropDown" name="country">'; 

    echo '<option value="us" selected="selected">United States</option>'; 
    echo '<option value="ca" >Canada</option>'; 

    echo '</select></td></tr>'; 

    echo '<tr><td class="label"><label for="email">Zip Code: <span class="required">*</span></label></td><td><input type="text" name="zip" size="30" value=""></td></tr>'; 

    echo '<tr><td></td><td><input type="submit" id="subscribeSubmit" value="" name="subscribeSubmit"/></td></tr></table></div>'; 

    echo '</form>'; 
} 
0

subscribe_form(); est exactement le même que le code de formulaire ci-dessus qui est après le else/echo qui affiche le message de remerciement.

J'ai essayé de laisser un commentaire, mais apparemment je n'ai pas assez de points d'utilisateur et je n'ai pas été connecté lorsque j'ai posté la question.

Questions connexes