1

機能するフォームを作成しようとしています。私は codeigniter を使用しています。ビューには次の形式があります。

    <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;
        }
    }

}

フォームが正しいかどうかはわかりません。送信をクリックすると、「メールをありがとう」という新しいページに移動し、AJAXはありません。それだけです。

誰でもこれで私を助けることができますか?

編集:また、受信者の電子メールをどこに置くのですか?

4

7 に答える 7

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

する必要があります

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

送信ボタンにnameasがないためsubmit、代わりにname='enviar'

于 2013-05-15T14:39:53.340 に答える
1

これを試して

if(isset($_POST["enviar"]) && $_POST["enviar"] == "Enviar")
于 2013-05-15T14:48:08.640 に答える
0

よくわかりませんが、問題はアクション属性です。

Fromヘルパーを使用してこのフォームを作成しないのはなぜですか?. とにかく、何を使用しないか、使用できない場合は、アクションを次のように変更しますhttp://localhost/your_project/index.php/formulario/send_form

ここで base_url について読んでください http://ellislab.com/codeigniter/user-guide/helpers/url_helper.html

さらに、 if($_POST['submit'] == "Submit") は間違っています。それは違いない

if(isset($_POST['submit']) && ($_POST['submit'] === "Enviar"))
于 2013-05-15T14:50:04.810 に答える
0

あなたが持っている

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

条件が満たされている場合は、その他すべて。そのような分野は決してありません。外すだけでOKです。

メールに関しては、 経由でアクセスする必要があります$_POST['email']。メールを送信する場合は、こちらまたはこちらをご覧ください。

于 2013-05-15T14:41:41.520 に答える
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;
        }
    }

}
于 2013-05-15T16:28:01.080 に答える