2013-09-02 2 views
0

ОК, поэтому у меня есть форму электронной почты на index.php. Я использую mail_check.php для подтверждения того, что оба поля заполнены. (есть более, что в настоящее время подтверждено, но не включены, поскольку это не вопрос)Проверка формы PHP, использует Javascript для сообщений об ошибках

Основная проблема заключается в том, что из mail_check.php Я хочу быть отправлен обратно в index.php с сообщением, размещенным в поле div id = "mailrespond". Для этого я выбрал PHP и Javascript.

Index.php

<div id="mailrespond"></div> 
    <form method="post" action="mail_check.php"> 
    <span>Name: <input type="text" name="name" maxlength="30" /></span><br /> 
    <span>Email: <input type="text" name="email" maxlength="30" /></span><br /> 
    <input type="submit" value="Sign Up" name="registration"> 
    </form> 
</div> 

mail_check.php

if(isset($_POST['registration'])) 

$name = $_POST['name']; 
$email = $_POST['email']; 


if(empty($email) || empty($name)){ 
    // if email and name are empty 
    //header ("location: index.php"); 
    ?> 
    <script language="javascript" type="text/javascript"> 
     window.location.replace("index.php"); 

     function msg() { 
      // creating elements are a safer method then innerHTML 
      dv = document.createElement('div'); // creates a Div element 
      dv.setAttribute('class', 'error_msg'); // adds error styling 
      txt = document.createTextNode('please enter your name and email '); // create the message 
      dv.appendChild(txt); // place the text node on the element 

      document.getElementById("mailrespond").appendChild(dv); 
      } 
      window.onload = msg; 

    </script> 
    <?php } 

Код продолжается, но моя проблема в том, что я не получаю обратную сообщения. Я немного новичок в этом все - если вы можете помочь, это будет очень признательно! :)

+0

Вы перенаправляетесь до запуска uting function msg() – Shadow

+0

Вы не можете разместить location.replace перед любым другим кодом, и вы не можете назначить функцию для загрузки внутри функции, которую вы назначаете onload – mplungjan

+0

Получили ли вы свою систему ** без ** javascript? –

ответ

0

< ---- @downvoter, пожалуйста, оставьте причину! Благодаря

Попробуйте это (и не называть имя поля формы , пожалуйста, так как форма может иметь название тоже)

index.php

<!DOCTYPE html> 
<html> 
<head> 
<title>Mail respond</title> 
<script> 
window.onload=function() { 
    document.getElementById("mailform").onsubmit=function(){ 
    if (this.fullname.value=="" || this.email.value=="") { 
     alert("Please fill in name and email"); 
     return false; 
    } 
    return true; // allow form submission 
    } 
} 
</script> 
</head> 
<body> 
<div id="mailrespond"></div> 
    <form method="post" action="mail_check.php" id="mailform"> 
    <span>Name: <input type="text" name="fullname" maxlength="30" /></span><br /> 
    <span>Email: <input type="text" name="email" maxlength="30" /></span><br /> 
    <input type="submit" value="Sign Up" name="registration"> 
    </form> 
</div> 
</body> 
</html> 

mail_check. php

<?PHP 
    if(isset($_POST['registration'])) 
    $name = $_POST['fullname']; 
    $email = $_POST['email']; 


    if(empty($email) || empty($name)){ 
    // if email and name are empty - only seen if JavaScript is turned off 
?> 

    <h3>You did not fill in name and email</h3> 
    <p>please wait to be redirected or click <a href='index.php'>here</a></p>; 
    <meta http-equiv="refresh" content="3; url=http://example.com/index.php" /> 
    <script type="text/javascript"> 
    window.onload=function() { 
     setTimeout(function() { 
      window.location.replace("index.php"); 
     },3000); 
    } 
</script> 
    <?php } ?> 
+0

И вот мы идем снова. Продвижение без указания ПОЧЕМУ !? – mplungjan

+0

Благодарим вас за помощь mplungjan, я отредактировал свою работу, чтобы быть похожей на вашу, и она работает хорошо. пс. Я не голосовал: S –

+0

Добро пожаловать. Я уверен, что вы этого не сделали - это действительно гейс меня, когда я пишу код, в который я верю, что кто-то, кто не согласен, не дает мне возможности узнать что-то новое или защитить мои предложения или исправить опечатку или что-то еще, голосование. – mplungjan

0

Вы перенаправляетесь на index.php в функции msg, поэтому он ничего не делает.

Вы должны сделать это с помощью чистого PHP, установить компонент в $ _SESSION, перенаправить PHP на index.php и в index.php проверить, существует ли этот компонент.

+0

Спасибо SkarXa, Итак, сеансы немного за меня, вы можете дать мне краткий обзор того, как вы измените два файла? Заранее спасибо :) –

Смежные вопросы