【问题标题】:PHP/HTML form into DB checkbox validationPHP/HTML 表单进入 DB 复选框验证
【发布时间】:2014-08-27 08:43:13
【问题描述】:

我正在尝试编写一个 php 代码来让网页将 FORM 中的信息插入数据库。 我已经设法将表单中的信息正确插入到 DB 列中,但是当用户没有选择“复选框”的所有四个项目时,对于每个未选中的复选框项目,我都会收到以下错误消息。

“注意:未定义索引:C:\xampp\htdocs\PHP\index1f.php 中第 66 行中的 ESPANOL”

有人告诉我“isset”句子可能是解决方案,但我自己无法弄清楚。

HTML

<br>
Idiomas:<br>
ESPAÑOL:<INPUT type="checkbox" name="ESPANOL" value="s">
INGLES:<INPUT type="checkbox" name="INGLES" value="s"><br>
FRANCES:<INPUT type="checkbox" name="FRANCES" value="s">
PORTUGUES:<INPUT type="checkbox" name="PORTUGUES" value="s">
<br>

PHP

mysql_query("insert into alumnos2
(NOMBRE,APELLIDO,GENERO,ESTADO_CIVIL,ESTUDIOS,ESPANOL,INGLES,PORTUGUES,FRANCES,CLAVE)
    values('$_REQUEST[NOMBRE]','$_REQUEST[APELLIDO]','$_REQUEST[GENERO]','$_REQUEST[ESTADO_CIVIL    ]','$_REQUEST[ESTUDIOS]','$_REQUEST[ESPANOL]','$_REQUEST[INGLES]','$_REQUEST[PORTUGUES]','$_    REQUEST[FRANCES]','$_REQUEST[CLAVE]')",$x)

注意:信息无论如何都会插入到数据库中。

【问题讨论】:

  • 您是否要重新填充选定的值?
  • 不是真的,我正在尝试在数据库中为选中的复选框插入一个“s”,而对于未触及的复选框则没有。
  • 我刚刚发现这个问题已经得到回答,但措辞不同:) 谢谢。 stackoverflow.com/questions/476426/…

标签: php html mysql forms checkbox


【解决方案1】:

您的查询有很多列,难以阅读。我会将列名和值放在一个数组中,并使用它来构造查询。这种方法还可以很容易地只填充一些值,而让其余的依赖于默认值(例如 NULL):

$values = array();

if (isset ($_REQUEST['ESPANOL'])) {
  $values['ESPANOL'] = "''"; /* Indicating true */
}
if (isset ($_REQUEST['INGLES'])) {
  $values['INGLES'] = "''";
}
/* ... */

$col_string = implode (',', array_keys ($values));
$val_string = implode (',', $values);

$query = "INSERT INTO alumnos2 ($col_string) VALUES ($val_string)";

还有

您不应该使用已弃用的 mysql 扩展。请改用PDOmysqli

【讨论】:

    猜你喜欢
    • 2012-10-01
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 2020-08-11
    • 2013-09-05
    • 2018-10-26
    • 2016-06-25
    • 1970-01-01
    相关资源
    最近更新 更多