我有一个带有嵌入式PHP代码的HTML表单,它为数组中包含的每个值创建一个复选框。就像这样:
<?php
$rows = array_map( 'str_getcsv', file( 'file.csv' ) );
$header = array_shift( $rows );
foreach ( $rows as $row ) {
echo '<input type="checkbox" id="'.$row[0].'" name="'.$row[0].'">
<label for="'.$row[0].'">'.$row[0].'</label>
<input type="number" name="'.$row[0].'" placeholder="Some text">';
}
?>
现在,我想使用此代码发送此表单,该代码将插入到另一个PHP文件中:
<?php
if( isset( $_POST ) == true && empty( $_POST ) == false ) {
$account = $_POST['account'];
$investment = $_POST['row[0]'];
$password = $_POST['password'];
$formcontent=" Account: $account \n $row[0]: $investment \n Password: $password";
$recipient = "my@email.com";
$subject = "My Form";
$mailheader = "From: My Form <my@form.com>";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Some text";
}
?>
但它不起作用。当您单击“提交”按钮时,表单不执行任何操作。
我已经成功使用纯HTML代码检查了它,所以我想我在使用PHP时犯了错误。
对于有兴趣的人,这里有指向我的表单的链接: Example
编辑:我已经删除preventDefault
,正如@DavidJorHpan指出的那样,但我仍然被卡住了。我无法将我的form.php发送到我的电子邮箱中。{/ p>
答案 0 :(得分:1)
因为您使用preventDefault
所以在您提交表单
$("button").click(function(e) {
e.preventDefault();
});
您可以删除该代码或添加代码
$('form').submit();
答案 1 :(得分:1)
正如David JorHpan在第二个回答中指出的那样,你必须从按钮点击事件中删除preventDefault()。这样就无法提交表单。
对于每个复选框,您都有一个相应的数字输入字段。尽管可能,但在您的姓名中添加空格并不是一个好习惯。属性值。尝试用破折号或下划线替换这些空格。例如,您可以执行以下操作:
name="'.str_replace(' ','_',$row[0]).'"
和id属性值也可以这样做。
您的表单提交检查应该有效,但如果您按以下方式更改它将更有意义:
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// process here
}
执行这些更改后,尝试加载页面并查看其进展情况。