我有一个调查页面,我需要的是在最终用户点击提交后插入MySql数据库,然后打开一个新页面说谢谢。
我做的是这样的:
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<?php
$Questions = array("Question1");
?>
<form id = "surveyform" method = "POST" >
<label name = "Q">Please share any recommendations you have for improving this program.</label>
<textarea rows="4" cols="100" name="A" form="surveyform" style = "width: 504px"></textarea>
<button type="submit" class="btn btn-primary" name ="Insert" value="Insert">Submit</button>
</form>
<?php
if (isset($_POST['Insert'])){
$A = '';
if (isset($_POST['A']) && $_POST['A'] !='') {$A = $_POST['A'];}
$QA = array(array('question'=>$Questions[0], 'answer'=>$A1));
$InsertSQL = "Insert into table(question, answer) values('".$QA[0]['question']."', ,".$QA[0]['answer']."')";
$Insert = new Query($InsertSQL);
$Insert->executeQuery();
header("Location: /path/thankyou");
}
?>
</body>
</html>
但它无法插入数据库。这不是数据库连接相关的问题,因为如果我注释掉检查部分
if (!empty($_REQUEST['Insert'])){
}
它可以写入数据库。问题是当我加载页面时,它会将空值写入数据库,因此我想在此处添加一些检查以确保单击提交按钮。
我通过将插入部分移动到部分来改变了thankyou.php。
<!DOCTYPE html>
<html lang="en">
<head>
<h5>Thank you for your time to take the survey. Have a good day!</h5>
</head>
<body>
</body>
</html>
非常感谢你。最后它有效!
答案 0 :(得分:2)
在阅读上面的评论之后,我看到你正在努力追随以下内容:
1)重新指示。
2)查询插入。
3)打开仅包含消息的页面。
1)
您可以将action = ""
留空,使用$_POST
数据时可以header(location: yourpage.php);
,也可以action = "youpage.php"
使用所有$_POST
数据。
2)
您需要在查询中指定值时指定行,其中存在语法错误。它应该像"INSERT INTO table(column1, column2, column3) Values('Value1','Value2','Value3')";
3)
在特定条件下将用户重定向到空白页面或甚至更好的警告消息(如echo <script>alert('Thank you');</script>
),假设您已成功将数据插入数据库,因为您的目的是仅显示消息。 / p>