我正在尝试创建一个有效的表单。我使用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,只是那个。
有人可以帮我解决这个问题吗?
修改:我还在哪里放收件电子邮件?
答案 0 :(得分:1)
if($_POST['submit'] == "Submit")
应该是
if(isset($_POST['enviar']))
由于提交按钮的name
不是submit
,而是name='enviar'
答案 1 :(得分:1)
试试这个
if(isset($_POST["enviar"]) && $_POST["enviar"] == "Enviar")
答案 2 :(得分:0)
我认为这是因为您正在翻译您使用的表单
if($_POST['submit'] == "Submit")
你在表格中使用
<input type="submit" value="Enviar" class="renuncia_submit" name="enviar">
您的实际提交按钮名称为enviar
而不是submit
。由于这是一个按钮,我建议您查看isset()
if(isset($_POST['enviar']))
答案 3 :(得分:0)
你有
if($_POST['submit'] == "Submit")
然后如果条件满足则其他一切。它永远不会没有这样的领域。只需删除它就可以了。
答案 4 :(得分:0)
我不确定,但问题是动作属性。
为什么不使用From helper来创建这个表单?无论如何,如果你不使用或不能使用它,请将动作更改为http://localhost/your_project/index.php/formulario/send_form
。
在这里阅读base_url http://ellislab.com/codeigniter/user-guide/helpers/url_helper.html
此外如果($ _ POST ['submit'] ==“提交”)是错误的。一定是
if(isset($_POST['submit']) && ($_POST['submit'] === "Enviar"))
答案 5 :(得分:0)
if (isset($_POST['enviar']))
这应该有效
答案 6 :(得分: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;
}
}
}