输入类型中的值 = "button"未添加到数据库中



我有麻烦将type="button"表单元素的值添加到mySql数据库,我想知道我是否错过了一些东西。

Edit -它看起来不像该元素的信息正在从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();
?>

看到您无法回显$_POST['quiz_start'],这意味着您的值实际上没有设置。这是因为当你在<input type='button'>中使用类按钮时,你的表单实际上并没有像<input type='submit'>

那样提交

一个解决方案是将按钮更改为实际的提交和格式…或者你需要从你的按钮调用一个带有onClick的javascript函数,如:

<input type="button" onClick="myfunction()">

关于我所说的参考,请看这篇文章。

如果正如你所说的,其余的表单值都提交得很好,但只有按钮值不起作用,你有几个不同的可能的解决方案,这取决于你的偏好。

  1. 使用选择字段或复选框让人们选择可以传递数据的类型。
  2. 在javascript中使用<input type="button" onClick="myfunction()">提交表单,然后在javascript中运行更新查询。
  3. 最后,如果你仍然想在PHP中运行你的查询,你可以运行一个javascript函数,使AJAX调用返回JSON信息,你可以在页面加载后定义一个PHP变量,然后你可以插入你的更新查询。

试试这个:

    <?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(); 
?>

因为input type="button"似乎不能捕获用户的选择,所以我想分享我想出的一个非常简单的方法,只使用html来实现单选按钮或复选框。

您所需要做的就是将输入元素设置为style="display:none",并用标签将图像和输入元素都包围起来,以便用户可以单击图像上的任何地方来选择元素:-)

<label for="quiz_start">
<img src="files/start1.jpg" />
<input style="display:none" type="radio" id="quiz_start" name="quiz_start" value="jeans">    
</label>

相关内容

  • 没有找到相关文章

最新更新