2013-05-15 3 views
1

Я пытаюсь создать форму, которая работает. I'm с помощью CodeIgniter, вид имеет такой вид:Простая форма PHP не работает

<form class="renuncia_form" action="/formulario/send_form" method="post"> 
     <p> 
      <label for="nombre">Nombre y apellidos:</label> 
       <input name="nombre" type="text" id="renuncia_nombre"> 
      <br> 
      <label for="participe">Nº Partícipe: </label> 
       <input name="participe" type="text" id="renuncia_participe"> 
      <br> 
      <label for="nombre_fondo">Nombre del Fondo de Inversión o SICAV: </label> 
       <input name="nombre_fondo" type="text" id="renuncia_fondo"> 
      <br> 
      <label for="email">Direccion de correo electrónico: </label> 
       <input name="email" type="text" id="renuncia_email"> 
      <br> 
      <input type="submit" value="Enviar" class="renuncia_submit" name="enviar"> 
     </p> 
    </form> 

И контроллер имеет этот PHP:

public function send_form(){ 
    if($_POST['submit'] == "Submit") 
    { 
     $errorMessage = ""; 

     if(empty($_POST['nombre'])) 
     { 
      $errorMessage .= "<li>You forgot to enter your name</li>"; 
     } 
     if(empty($_POST['participe'])) 
     { 
      $errorMessage .= "<li></li>"; 
     } 

     $varMovie = $_POST['nombre']; 
     $varName = $_POST['participe']; 

     if(empty($errorMessage)) 
     { 
      $fs = fopen("mydata.csv","a"); 
      fwrite($fs,$varName . ", " . $varMovie . "\n"); 
      fclose($fs); 

      header("Location: thankyou.html"); 
      exit; 
     } 
    } 

} 

Я не знаю, если I'm правильно делает форму. Я просто хочу работать как нормальное действие формы, которое вы нажмете на отправке, и вы перейдете на новую страницу, в которой говорится: «Спасибо за вашу электронную почту», не AJAX.

Может ли кто-нибудь помочь мне с этим?

Редактировать: И где я могу поместить получателя по электронной почте?

+0

Вы должны использовать ** Исеть() ** – pmandell

+0

Если вы используете CodeIgniter, вы, возможно, хотите используйте вспомогательную библиотеку формы. –

+0

Um ... где ваше «имя =« отправить »в вашей форме. Если у вас нет элемента с именем «submit», то ваш самый первый if() не будет работать вообще ... ни одна из примеров isset() не будет приведена ниже. Однако используйте isset(), как они описывают, но ПОСЛЕ того, как вы назовете кнопку отправки. [править] - посмотрите на ответ @ Nwafor –

ответ

1
if($_POST['submit'] == "Submit") 

должен быть

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

Как кнопка отправки не имея name как submit, вместо этого он name='enviar'

0

Я думаю, это потому, что вы переводите свою форму в любом случае вы использовали

if($_POST['submit'] == "Submit") 

и вы использовали в форме

<input type="submit" value="Enviar" class="renuncia_submit" name="enviar"> 

фактическая отправить имя кнопки enviar и не submit. Так как это кнопка, я бы рекомендовал проверить isset()

if(isset($_POST['enviar'])) 
0

Вы получили

if($_POST['submit'] == "Submit") 

, а затем все остальное, если условие выполнено. Это никогда не бывает так, как нет такого поля. Просто удалите его, и все будет хорошо.

Что касается почты, вы должны получить к нему доступ через $_POST['email']. Если вы хотите отправить электронное письмо, посмотрите here или here.

1

попробовать этот

if(isset($_POST["enviar"]) && $_POST["enviar"] == "Enviar") 
0

я не уверен, но проблема в том, атрибут действия.

Почему бы не использовать Из помощника, чтобы создать эту форму ?. В любом случае, если вы не можете использовать или не можете его использовать, измените действие на что-то вроде http://localhost/your_project/index.php/formulario/send_form.

читать о base_url здесь http://ellislab.com/codeigniter/user-guide/helpers/url_helper.html

Кроме того, если ($ _ POST [ 'Отправить'] == "Отправить") не так.Он должен быть

if(isset($_POST['submit']) && ($_POST['submit'] === "Enviar")) 
0

Использование:

public function send_form(){ 

    if(array_key_exists('submit',$_POST)) 
    { 
     $errorMessage = ""; 

     if(empty($_POST['nombre'])) 
     { 
      $errorMessage .= "<li>You forgot to enter your name</li>"; 
     } 
     if(empty($_POST['participe'])) 
     { 
      $errorMessage .= "<li></li>"; 
     } 

     $varMovie = $_POST['nombre']; 
     $varName = $_POST['participe']; 

     if(empty($errorMessage)) 
     { 
      $fs = fopen("mydata.csv","a"); 
      fwrite($fs,$varName . ", " . $varMovie . "\n"); 
      fclose($fs); 

      header("Location: thankyou.html"); 
      exit; 
     } 
    } 

}