情况:
我使用PHP连接到一个MySQL数据库,并插入一些人口统计类型表单生成的变量和一些评分结果生成的计算变量。
人口统计“表单”生成的变量正在正确插入 * .但评分结果生成的计算变量不是*。但是,在表单提交后自动发送给用户的电子邮件中,生成的计算变量的评分结果将被发送并正确计算,再加上在回显/打印的启动屏幕中,这两种类型的变量都是可见的。
顺便说一句,这是一项工作满意度调查,每个问题有15个问题,每个问题有7个选项(单选按钮),每个选项值不同的点数。
我在此工作了5天,在这个网站上阅读了与此主题相关的所有线程,尝试了许多不同的配置,但都没有成功,无法找到将最后7个变量值(skill_variety、task_identity、task_significant、autonomy、feed_back、total、MPS)插入MYSQL数据库的方法。
我使用隐藏输入插入得分结果计算变量,但没有成功。
<FORM METHOD=POST action="<?php echo $_SERVER['PHP_SELF']; ?>" NAME="action" id="action" onSubmit="return validate(this);">
<input type="hidden" name="action" value="true">
<input type="hidden" name="skill_variety" id="skill_variety" value="<?php echo $_POST['skill_variety'] ?>" />
<input type="hidden" name="task_variety" id="task_variety" value="<?php echo $_POST['task_variety'] ?>" />如果需要更多的代码,我将很乐意添加它。告诉我就行了。
我知道你们很有帮助,也经常被这样的问题所困扰,但我希望你们能提供专业的帮助和一些建议。我的头发已经很薄了,希望不要在预定的时间之前把剩下的头发拔出来。
我的需要
将这些顽固不化的变量(skill_variety、task_identity、task_significant、autonomy、feed_back、total、MPS)插入到目标MYSQL表中的方向/建议/解决方案。
我对任何方向和希望事先表示感谢,在这篇文章中我做得很清楚和完整。
顺便说一句,这里是测试URL是否有助于了解“活体”9.php的情况。
这里是设置的数据库
CREATE TABLE IF NOT EXISTS mydb3 (
id int(11) NOT NULL AUTO_INCREMENT,
s varchar(60),
name varchar(50),
email varchar(50),
ordered varchar(4),
optype varchar(50),
rate varchar(50),
time timestamp not null default now(),
skill_variety varchar(8),
task_identity varchar(8),
task_significant varchar(8),
autonomy varchar(8),
feed_back varchar(8),
total varchar(8),
MPS varchar(12),
PRIMARY KEY (id)
) ENGINE=MyISAM这里是插入和连接代码
<?php
//MySQL Database Connect
include '../../../../phpinc.php';
// Only process the form if $_POST isn't empty
if ( ! empty( $_POST ) ) {
// Connect to MySQL variables are defined in the include file
$mysqli = new mysqli($hostname, $username, $password, $dbName );
// Check the connection
if ( $mysqli->connect_error ) {
die( 'Connect Error: ' . $mysqli->connect_errno . ': ' . $mysqli->connect_error );
}
// Insert the data
$sql = "INSERT INTO `mydb3` ( name, email, ordered, optype, rate, skill_variety, task_identity, task_significant, autonomy, feed_back, total, MPS )
VALUES
(
'{$mysqli->real_escape_string($_POST['name'])}',
'{$mysqli->real_escape_string($_POST['email'])}',
'{$mysqli->real_escape_string($_POST['ordered'])}',
'{$mysqli->real_escape_string($_POST['optype'])}',
'{$mysqli->real_escape_string($_POST['rate'])}',
'{$mysqli->real_escape_string($_POST['skill_variety'])}',
'{$mysqli->real_escape_string($_POST['task_identity'])}',
'{$mysqli->real_escape_string($_POST['task_significant'])}',
'{$mysqli->real_escape_string($_POST['autonomy'])}',
'{$mysqli->real_escape_string($_POST['feed_back'])}',
'{$mysqli->real_escape_string($_POST['total'])}',
'{$mysqli->real_escape_string($_POST['Motivating_Potential_Score'])}'
)";
$insert = $mysqli->query($sql);
echo $sql;
// Print response from MySQL
if ( $insert ) {
print("<br>");
echo "Success! Row ID: {$mysqli->insert_id}";
} else {
die("Error: {$mysqli->errno} : {$mysqli->error}");
}
## #$mysqli->close(); has been moved from here to after the automated email code
?>这里是使用echo $sql;在启动屏幕上打印的内容
INSERT INTO mydb3 (name, email, ordered, optype, rate, skill_variety, task_identity, task_significant, autonomy, feed_back, total, MPS) VALUES ( 'Jack White', 'mars@marscafe.com','NO', 'Other','Other', '','', '','', '','','' )
Success! Row ID: 46
skill_variety -- 15
task_identity -- 18
task_significant -- 6
autonomy -- 9
feed_back -- 4
total -- 52
MPS -- 468 下面是使用在启动屏幕上打印的内容
echo "<pre>";
print_r($_POST);
echo "</pre>";
Array (
[action] => true
[skill_variety] =>
[task_variety] =>
[name] => Jack White
[email] => mars@marscafe.com
[rate] => Other
[ordered] => NO
[optype] => Other
[question-1-answers] => E
[question-2-answers] => F
[question-3-answers] => B
[question-4-answers] => C
[question-5-answers] => A
[question-6-answers] => G
[question-7-answers] => G
[question-8-answers] => G
[question-9-answers] => G
[question-10-answers] => D
[question-11-answers] => D
[question-12-answers] => D
[question-13-answers] => D
[question-14-answers] => D
[question-15-answers] => D
)发布于 2015-10-01 17:01:23
我查看了您的代码,您可能会尝试插入一些不存在的内容。
首先,这是从用户发送到服务器的内容:
action:true
skill_variety:
task_variety:
name:TestNibbels
email:TestNibbels@dow*****ht.de
rate:Chef
ordered:YES
optype:Corporation
question-1-answers:C
question-2-answers:C
question-3-answers:D
question-4-answers:E
question-5-answers:C
question-6-answers:C
question-7-answers:C
question-8-answers:C
question-9-answers:C
question-10-answers:C
question-12-answers:C
question-13-answers:C
question-14-answers:C
question-15-answers:C当您在Crome中为调试控制台按F12时,您会看到这个列表。

或者当你像你一样打印$_POST的时候。杰森K评论了缺失的$_POSTMotivating_Potential_Score。没有task_significant、autonomy、feed_back和total发回。这就是为什么没有为这些键设置$_POST的原因。
以下两行是$_POST、skill_variety和$_POSTtask_variety为空但已设置的原因。您可以在上一次Codeblock的第8和第9行中看到这一点。
<input type="hidden" name="skill_variety" id="skill_variety" value="" />
<input type="hidden" name="task_variety" id="task_variety" value="" />您试图通过html代码重传这两个变量。为什么?试一试
session_start();
$_SESSION['skill_variety'] = 'something';在访问者回答表单时,将值存储在服务器中。当他成功提交您的代码时,从您的服务器端存储会话中获取此值,如下所示:
session_start();
$thisissomething = $_SESSION['skill_variety'];然后你可以省略以下几点:
<input type="hidden" name="skill_variety" id="skill_variety" value="<?php echo $_POST['skill_variety'] ?>" />
<input type="hidden" name="task_variety" id="task_variety" value="<?php echo $_POST['task_variety'] ?>" />第二:您似乎忘了使用某些函数处理question-XX-answers。不管这个函数是什么,它可能会填充数据库的值。我指的是你(为什么)在你的帖子请求中试图找到的那些人:$_POST['skill_variety'] $_POST['task_identity'] $_POST['task_significant'] $_POST['autonomy'] $_POST['feed_back'] $_POST['total'] $_POST['Motivating_Potential_Score']
https://stackoverflow.com/questions/32891915
复制相似问题