很抱歉,问过一些似乎被多次询问的事情,但是因为我没有发现任何事情......就像我的情况一样简单,所以我对这条路不太确定
事情是,我有一个表格,在页面" estimate.php"其大多数输入类型为Text,以及一些复选框。它的操作设置为" insert.php",其中是发送电子邮件的代码,并将数据发送到数据库,并在其末尾提供警报和重定向到表单页。
当我填写表单而不检查复选框上的任何内容时,一切正常,数据库列完全填充,电子邮件正确发送,应该接收复选框值的字段为空白,如它应该是,因为我没有填补它们。但是一旦我尝试使用复选框,当我点击提交时,我得到一个空页面,地址冻结在insert.php上。我不确定发生了什么,但由于我以前没有使用过Checkbox来修改SQL,而且我对编码很新手,我认为这与我的方式有关。 ; m尝试处理复选框中的数据以将其发送到数据库。我明白,为每个复选框设置值,它会将它们发布为文本。
以下是代码(if中最重要的部分,试图总结。[...]代替我带走的部分,让你更方便地帮助我。)
- FORM:
<form id="contact-form" action="../painel/insert.php" method="POST">
//[...]
<div style="margin-top: 20px;">
<p style="margin-bottom: 0;">Quantidade de pares por numeração</p>
<br />
<div class="table-responsive">
<table class="table table-bordered">
<tr>SANDÁLIAS INFANTIS</tr>
<thead>
<tr>
<th class="text-center">Numeração</th>
<th class="text-center">Quantidade</th>
<th class="text-center">Alça</th>
</tr>
</thead>
<tbody>
<tr>
<td>25/26</td>
<td><input type="text" name="i2526_quant"></td>
<td style="text-align: left;">
<input type="checkbox" name="i2526_a" value="Slim"> Slim<br>
<input type="checkbox" name="i2526_a" value="Tradicional"> Tradicional
</td>
</tr>
<tr>
<td>27/28</td>
<td><input type="text" name="i2728_quant"></td>
<td style="text-align: left;">
<input type="checkbox" name="i2728_a" value="Slim"> Slim<br>
<input type="checkbox" name="i2728_a" value="Tradicional"> Tradicional
</td>
</tr>
<tr>
<td>29/30</td>
<td><input type="text" name="i2930_quant"></td>
<td style="text-align: left;">
<input type="checkbox" name="i2930_a" value="Slim"> Slim<br>
<input type="checkbox" name="i2930_a" value="Tradicional"> Tradicional
</td>
</tr>
<tr>
<td>31/32</td>
<td><input type="text" name="i3132_quant"></td>
<td style="text-align: left;">
<input type="checkbox" name="i3132_a" value="Slim"> Slim<br>
<input type="checkbox" name="i3132_a" value="Tradicional"> Tradicional
</td>
</tr>
</tbody>
</table>
</div>
//[...]
<input type="submit" class="submit no-margin-bottom" value="Enviar" style="font-size:20 px; padding: 10px; border: 3px solid #555555;"/>
</form>
- 插入的代码,在Insert.php上:
<?php
include "conexao.php";
//[...]
$i2526_quant = $_POST['i2526_quant'];
$i2526_a = $_POST['i2526_a'];
$i2728_quant = $_POST['i2728_quant'];
$i2728_a = $_POST['i2728_a'];
$i2930_quant = $_POST['i2930_quant'];
$i2930_a = $_POST['i2930_a'];
$i3132_quant = $_POST['i3132_quant'];
$i3132_a = $_POST['i3132_a'];
//[...]
$inserir = "INSERT INTO orcamento VALUES([...],'$i2526_quant','$i2526_a','$i2728_quant','$i2728_a','$i2930_quant','$i2930_a','$i3132_quant','$i3132_a',[...])";
//[...](here is the part of the code that sends the e-mail. As I said, everything is working fine, except for the checkboxes (actually, I took away the part from the code that would send the checkbox values to the e-mail and tested it again, and it didn't work. Since the code is pretty long, I decided not to post it (if you need to, I will).
$enviado = $mail->Send();
if ($enviado) {
//$envia = mail($recipient, $subject, $message, $headers);
echo '<script>alert("Obrigado! Orcamento enviado com sucesso, responderemos o mais breve possível.");location="../estimate.php";</script>';
}else{
echo '<script>alert("Erro ao enviar orcamento.");location="../estimate.php";</script>';
} }
?>
- 非常感谢你提前。我很抱歉英语很差,而且对于这样的新手来说,因为我很确定这是一件很容易解决的问题,但是嘿,我在这里试图从最好的东西中学习(:/ p>
答案 0 :(得分:0)
尝试在HTML文件中的复选框名称后添加[]
。这会将它们作为数组发布到您的PHP文件中。如果不这样做,则不可能有多个选中的值。
不确定这是否解决了您的错误。您应该能够通过在insert.php文件的顶部添加以下内容来获取更多信息:
error_reporting = E_ALL;
ini_set('display_errors', 'On');
这会启用文件的错误报告,并应输出出错的地方。确保在修复错误后删除它。