2016-12-20 5 views
1

このフォームの開発は、同じページにデータを送信することです。同じページで送信するときにフォームを非表示にするにはどうすればよいですか?

メッセージを送信して表示する際に連絡先フォームを非表示にしたい場合は、お問い合わせいただきありがとうございます。

私が提示する問題は、送信アクションにフォームを実行すると、隠されていることで、エラーメッセージが表示されますが、お問い合わせフォームは非表示のまま。

<!DOCTYPE html> 
<html> 
<head> 
    <title>Contact US</title> 
</head> 
<body> 

<?php 
session_start(); 
$errors = ''; 
$nombre = ''; 
$email = ''; 
$telefono = ''; 
$mensaje = ''; 
if(isset($_POST['submit'])) { 

    if($_SESSION['vcode'] != $_POST['vcode']) { 
    $errors .= "The characters do not match the captcha code"; 
    } 

    $nombre = $_POST["name"]; 
    $email = $_POST["mail"]; 
    $telefono = $_POST["phone"]; 
    $mensaje = $_POST["message"]; 

    if(empty($nombre)) { 
    $errors .= "\n Please enter your name. "; 
    }else { 
    if (!preg_match("/^[a-zA-Z ]*$/",$nombre)) { 
     $errors .= "\n Only letters and spaces are allowed."; 
    } 
    } 
    if(empty($email)) { 
    $errors .= "\n Please enter your email. "; 
    }else{ 
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
     $errors .="\n Invalid email"; 
    } 
    } 
    if(empty($telefono)) { 
    $errors .= "\n Please enter your phone number. "; 
    }else{ 
    if(!preg_match("/^\+?\d{1,3}?[- .]?\(?(?:\d{2,3})\)?[- .]?\d\d\d[- .]?\d\d\d\d$/", $telefono)) { 
     $errors .="\n Invalid number"; 
    } 
    } 
    if($_POST['producto'] == 0){ 
    $errors .= "\n You must select a product"; 
    } 
    if(empty($mensaje)) { 
    $errors .= "\n Please enter your message. "; 
    } 
    if(empty($errors)) { 
    $asunto = ""; 
    $message = "Usuario:".$_POST['name']." Email:".$_POST['mail']." Telefono ".$_POST['phone']." Informacion ".$_POST['message']; 
    $destino = "[email protected]"; 
    $remitente = "From: [email protected]"; 
    mail($destino,$asunto,$message,$remitente); 
    unset($_POST['submit']); 
    echo "Thanks for your comments"; 
    } 
} 
?> 

<div class="error"> 
<?php 
if(!empty($errors)){ 
    echo "<p class='err'>".nl2br($errors)."</p>"; 
}else{ 
?> 
</div> 
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post" autocomplete="off" enctype="multipart/form-data"> 
    <div class="touch"> 
    <div class="name"> 
     <input type="text" name="name" placeholder="Name" value='<?php echo htmlentities($nombre) ?>'> 
    </div> 
    <div class="email"> 
     <input type="text" name="mail" placeholder="Email" value='<?php echo htmlentities($email) ?>'> 
    </div> 
    <div class="phone"> 
     <input type="tel" name="phone" placeholder="Phone" value='<?php echo htmlentities($telefono) ?>'> 
    </div> 
    <div class="select-pro"> 
     <select name="producto"> 
     <option value="0" selected>Affair...</option> 
     <option value="1">Product 1</option> 
     <option value="2">Product 2<option> 
     <option value="3">Product 3</option> 
     <option value="4">Other</option> 
     </select> 
    </div> 
    <div class="Customer-message"> 
     <textarea id="message" name="message" placeholder="Su consulta..."><?php echo htmlentities($mensaje) ?></textarea> 
    </div> 
    <div class="capcha"> 
     <img src="image.php" name="vcode" id="phoca-captcha"/> 
     <input name="vcode" type="text" placeholder="Codigo captcha"> 
    </div> 
     <input type="submit" name="submit" value="Enviar"> 
    </div> 
</form> 
<?php } ?> 
</body> 
</html> 
+0

送信し、このメッセージを表示するとき、私は、フォームを非表示にする* *フォームまたは印刷を印刷するときに動的に決定*ありがとう*メッセージ? –

+1

あなたは '場合(ISSET($ _ POST [ '提出'])){...}を持っているので、'、そしてちょうど '他に{...}'ブロックと、それはないでしょうに ''

htmlコードをラップそれが提出された後のフォームを表示します。 – Sean

+1

...またはajax/jsを使用してください。 –

答えて

1

更新あなたのコード:

<!DOCTYPE html> 
<html> 
<head> 
    <title>Contact US</title> 
</head> 
<body> 

<?php 
@session_start(); 
if(isset($_POST['submit'])) { 

    if($_SESSION['vcode'] != $_POST['vcode']) { 
    $errors = "The characters do not match the captcha code"; 
    } 

    $nombre = $_POST["name"]; 
    $email = $_POST["mail"]; 
    $telefono = $_POST["phone"]; 
    $mensaje = $_POST["message"]; 
    $asunto = ""; 
    $message = "Usuario:".$_POST['name']." Email:".$_POST['mail']." Telefono ".$_POST['phone']." Informacion ".$_POST['message']; 
    $destino = "[email protected]"; 
    $remitente = "From: [email protected]"; 
    mail($destino,$asunto,$message,$remitente); 
    unset($_POST['submit']); 
    $msg= "Thanks for your comments"; 
} 
?> 
<div class="error"> 
<?php 
if(isset($msg)){ 
    echo "<p class='err'>".$msg."</p>"; 
}else{ 
    if(isset($errors) echo $errors; 
?> 
</div> 
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post" autocomplete="off" enctype="multipart/form-data"> 
    <div class="touch"> 
    <div class="name"> 
     <input type="text" name="name" placeholder="Name" value='' oninvalid="this.setCustomValidity('Please enter your name.')" required> 
    </div> 
    <div class="email"> 
     <input type="email" name="mail" placeholder="Email" value='' title="Please enter your email." oninvalid="this.setCustomValidity('Please enter your email.')" required> 
    </div> 
    <div class="phone"> 
     <input type="tel" name="phone" maxlength="10" pattern="[0-9]{10}" title="Please enter your phone number." oninvalid="this.setCustomValidity('Please enter your phone number.')" placeholder="Phone" value='' required> 
    </div> 
    <div class="select-pro"> 
     <select name="producto" oninvalid="this.setCustomValidity('Please Select a product.')" required> 
     <option value="">Select One</option> 
     <option value="0">Affair...</option> 
     <option value="1">Product 1</option> 
     <option value="2">Product 2<option> 
     <option value="3">Product 3</option> 
     <option value="4">Other</option> 
     </select> 
    </div> 
    <div class="Customer-message"> 
     <textarea id="message" name="message" title="Please enter your message." placeholder="Su consulta..." oninvalid="this.setCustomValidity('Please enter your message.')" required></textarea> 
    </div> 
    <div class="capcha"> 
     <img src="image.php" name="vcode" id="phoca-captcha"/> 
     <input name="vcode" oninvalid="this.setCustomValidity('Please enter captcha.')" type="text" placeholder="Codigo captcha"> 
    </div> 
     <input type="submit" name="submit" value="Enviar"> 
    </div> 
</form> 
<?php } ?> 
</body> 
</html> 

Regrads :)

0

<div class="error"> 
<?php 
if(!empty($errors)){ 
    echo "<p class='err'>".nl2br($errors)."</p>"; 
?> 
</div> 
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post" autocomplete="off" enctype="multipart/form-data"> 
    <div class="touch"> 
    <div class="name"> 
     <input type="text" name="name" placeholder="Name" value='<?php echo htmlentities($nombre) ?>'> 
    </div> 
    <div class="email"> 
     <input type="text" name="mail" placeholder="Email" value='<?php echo htmlentities($email) ?>'> 
    </div> 
    <div class="phone"> 
     <input type="tel" name="phone" placeholder="Phone" value='<?php echo htmlentities($telefono) ?>'> 
    </div> 
    <div class="select-pro"> 
     <select name="producto"> 
     <option value="0" selected>Affair...</option> 
     <option value="1">Product 1</option> 
     <option value="2">Product 2<option> 
     <option value="3">Product 3</option> 
     <option value="4">Other</option> 
     </select> 
    </div> 
    <div class="Customer-message"> 
     <textarea id="message" name="message" placeholder="Su consulta..."><?php echo htmlentities($mensaje) ?></textarea> 
    </div> 
    <div class="capcha"> 
     <img src="image.php" name="vcode" id="phoca-captcha"/> 
     <input name="vcode" type="text" placeholder="Codigo captcha"> 
    </div> 
     <input type="submit" name="submit" value="Enviar"> 
    </div> 
</form> 
<?php 
} 
else 
{ 
?> 

<p>thanks for contacting us.</p> 

<?php 
} 
?> 
+0

私の無知を許してください。しかし、あなたが私に指示した例で** PHP **コードと** HTML **フォームをどのように構造化しなければならないのか分かりません。 – Josues

+0

ちょうど今私は答えを編集しました。確認してください! –

+0

友達を送信せずにフォームを非表示にしますか? – Josues

1
if($_SERVER['REQUEST_METHOD'] == 'POST'){ 
    //ur php code (allways use) $_SERVER['REQUEST_METHOD'] 
}else{ 
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post" autocomplete="off" enctype="multipart/form-data"> 
    <div class="touch"> 
    <div class="name"> 
     <input type="text" name="name" placeholder="Name" value='<?php echo htmlentities($nombre) ?>'> 
    </div> 
    <div class="email"> 
     <input type="text" name="mail" placeholder="Email" value='<?php echo htmlentities($email) ?>'> 
    </div> 
    <div class="phone"> 
     <input type="tel" name="phone" placeholder="Phone" value='<?php echo htmlentities($telefono) ?>'> 
    </div> 
    <div class="select-pro"> 
     <select name="producto"> 
     <option value="0" selected>Affair...</option> 
     <option value="1">Product 1</option> 
     <option value="2">Product 2<option> 
     <option value="3">Product 3</option> 
     <option value="4">Other</option> 
     </select> 
    </div> 
    <div class="Customer-message"> 
     <textarea id="message" name="message" placeholder="Su consulta..."><?php echo htmlentities($mensaje) ?></textarea> 
    </div> 
    <div class="capcha"> 
     <img src="image.php" name="vcode" id="phoca-captcha"/> 
     <input name="vcode" type="text" placeholder="Codigo captcha"> 
    </div> 
     <input type="submit" name="submit" value="Enviar"> 
    </div> 
</form> 
} 
関連する問題