我在将type="button"
表单元素的值添加到 mySql 数据库时遇到问题,我想知道我是否遗漏了什么。
编辑-看起来该元素的信息没有从 html 传递到 php,因为它没有回显值。我唯一的问题是这个元素,表单的其余部分正在正确提交。
我将其用于在线测验,该测验根据他们选择的图像构建用户配置文件,并将图像设置为按钮元素的背景图像,并且我试图在直接 html 中执行此操作(而不是将 javascript 与单选按钮或复选框一起使用)。
<input type="button" name="quiz_start" value="jeans" style="background: url(files/start1.jpg) no-repeat; width:54px;height:140px; cursor:pointer; border:none; color: transparent; font-size : 0">
为了提出问题,我已经简化了 php 代码(包括指定用户 ID 并将其限制为仅一个字段)。我还在下面包含了完整的代码。
<?php
//Start session & connect to database
$user_id = 3;
$qry = "INSERT INTO style(user_id, quiz_start) VALUES('$user_id','$_POST[quiz_start]')";
$result = @mysql_query($qry);
header("location: page2.html");
exit();
?>
完整的查询是:
$fieldlist=$vallist='';
foreach ($_POST as $key => $value) {
$fieldlist.=$key.',';
$vallist.='\''.($value).'\',';
}
$fieldlist=substr($fieldlist, 0, -1);
$vallist=substr($vallist, 0, -1);
$fieldlist.=', user_id';
$vallist.=','.$user_id;
$setlist='';
foreach ($_POST as $key=>$value){
$setlist.=$key .'=\''.$value.'\',';
}
$setlist=substr($setlist, 0, -1);
$result = mysql_query('UPDATE style SET '.$setlist.' WHERE user_id='.$user_id);
if (mysql_affected_rows()==0) {
$result = mysql_query('INSERT INTO style ('.$fieldlist.') VALUES ('.$vallist.')');
}
header("location: page2.html");
exit();
?>