以PHP格式发送数组值

时间:2017-12-13 23:46:29

标签: php html arrays forms

我有一个带有嵌入式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>

2 个答案:

答案 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
}

执行这些更改后,尝试加载页面并查看其进展情况。