【问题标题】:$_POST checkbox in order list. Email订单列表中的 $_POST 复选框。电子邮件
【发布时间】:2023-04-08 03:42:01
【问题描述】:

所以基本上我有一个带有多个项目的结帐页面,上面有一个复选框,假设您想要 15 个项目中的 4 个项目,当您选中这些框时,这些特定项目会添加到发送给您的邮件的订单列表中。

我还没有为复选框设置值,因为我正在尝试解决这个问题。

这是一堵文字墙,我知道。 jsFiddle 对我提交的代码表现迟钝。

PHP $_POST

$basic_standby = trim(htmlentities($_POST['basic_standby'], ENT_QUOTES));
$advanced_standby = trim(htmlentities($_POST['advanced_standby'], ENT_QUOTES));
$basic_game_overlay = trim(htmlentities($_POST['basic_game_overlay'], ENT_QUOTES));
$advanced_game_overlay = trim(htmlentities($_POST['advanced_game_overlay'], ENT_QUOTES));
$desktop_overlay = trim(htmlentities($_POST['desktop_overlay'], ENT_QUOTES));
$offline_overlay = trim(htmlentities($_POST['offline_overlay'], ENT_QUOTES));
$live_overlay = trim(htmlentities($_POST['live_overlay'], ENT_QUOTES));
$avatar_image = trim(htmlentities($_POST['avatar_image'], ENT_QUOTES));
$description_images = trim(htmlentities($_POST['description_images'], ENT_QUOTES));
$team_logo = trim(htmlentities($_POST['team_logo'], ENT_QUOTES));
$gold_package = trim(htmlentities($_POST['gold_package'], ENT_QUOTES));
$website_design = trim(htmlentities($_POST['website_design'], ENT_QUOTES));

邮件 HTML/PHP

<table cellpadding="0" cellspacing="0" border="0" width="670" class="content">
    <tr>
        <td width="100"></td>
        <td style="padding: 5px 0 20px 0; font-size: 13px;"><b style="text-transform: uppercase; font-size: 14px;">Order list:</b><br /><br /> '. $faster_delivery .'<br /> '. $basic_standby .'<br /> '. $advanced_standby .'<br /> '. $basic_game_overlay .'<br /> '. $advanced_game_overlay .'<br /> '. $desktop_overlay .'<br /> '. $offline_overlay .'<br /> '. $live_overlay .'<br /> '. $avatar_image .'<br /> '. $description_images .'<br /> '. $team_logo .'<br /> '. $gold_package .'<br /> '. $website_design .'</td>
        <td width="100"></td>
    </tr>
</table>

几个复选框 - HTML

<tr>
    <td width="250">1x Basic standby overlay:</td>
    <td width="15" align="left">
        <input class="test" type="checkbox" name="basic_standby" value="0" data-val="10" />
    </td>
</tr>
<tr>
    <td width="250">1x Advanced standby overlay:</td>
    <td width="15" align="left">
        <input type="checkbox" name="advanced_standby" value="0" data-val="20" />
    </td>
</tr>
<tr>
    <td width="250">1x Basic game overlay:</td>
    <td width="15" align="left">
        <input type="checkbox" name="basic_game_overlay" value="0" data-val="10" />
    </td>
</tr>
<tr>
    <td width="250">1x Advanced game overlay:</td>
    <td width="15" align="left">
        <input type="checkbox" name="advanced_game_overlay" value="0" data-val="20" />
    </td>
</tr>

我的错误信息

Notice: Undefined index: basic_standby in C:\xampp\htdocs\datoverlayguy\core\includes\send_order.php on line 44

Notice: Undefined variable: newsletter in C:\xampp\htdocs\datoverlayguy\core\includes\send_order.php on line 45

Notice: Undefined index: advanced_standby in C:\xampp\htdocs\datoverlayguy\core\includes\send_order.php on line 48

Notice: Undefined index: basic_game_overlay in C:\xampp\htdocs\datoverlayguy\core\includes\send_order.php on line 52

Notice: Undefined index: advanced_game_overlay in C:\xampp\htdocs\datoverlayguy\core\includes\send_order.php on line 56

Notice: Undefined index: offline_overlay in C:\xampp\htdocs\datoverlayguy\core\includes\send_order.php on line 64

Notice: Undefined index: live_overlay in C:\xampp\htdocs\datoverlayguy\core\includes\send_order.php on line 68

Notice: Undefined index: avatar_image in C:\xampp\htdocs\datoverlayguy\core\includes\send_order.php on line 72

Notice: Undefined index: description_images in C:\xampp\htdocs\datoverlayguy\core\includes\send_order.php on line 76

Notice: Undefined index: website_design in C:\xampp\htdocs\datoverlayguy\core\includes\send_order.php on line 88

编辑

当我尝试发送电子邮件时它显示如下。

Gyazo link

Imgur link

【问题讨论】:

  • 您是否在处理 $_POST 之前检查表单是否已发布?
  • 你确实有表单标签,对吗?
  • 定义变量并设置空值。
  • 表单和邮件发件人在同一个文件中,一切都在一个页面中。我确实有没有指向任何地方的表单标签。 &lt;form method="post" action=""&gt;@Dagon
  • 在你真正尝试使用 post 变量来检查里面的内容并发布之前,你能做一个 var_dump($_POST) 吗?

标签: php html email checkbox


【解决方案1】:

我想我明白了....您将复选框的值设置为 0。

意思是如果他们被检查,发送的值将是“0”......如果你不检查他们......这个值将是......等待它......” 0" 也被认为是假的。

你必须设置类似的东西:

如果您选中该框,您就可以这样做:

if( isset($_POST['advanced_game_overlay']) )
    $advanced_game_overlay = $_POST['advanced_game_overlay'];

然后您可以在表单中使用该变量,如果选中该框,则应显示 1,否则应显示 0。试试看,或许能解决问题。在您的转储中,我们看到发送的值“sticka”,因此您的表单信息已成功发送,您还从您的输入中重用了“名称”属性,所以除了...

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-11-09
  • 1970-01-01
  • 1970-01-01
  • 2015-08-21
  • 2012-03-23
  • 2013-07-01
  • 2011-08-01
  • 2013-08-04
相关资源
最近更新 更多