我需要简单的事情,通过点击按钮将数据插入数据库,但我不能成功。
这是button.php
<form method="post" action="" onsubmit="return display()">
<input type="text" name="name" id="name22" placeholder="">
<input type="submit" name="submit" value="Send"><br>
<div id="answer22" class="answer"></div>
这是获取用户输入的词的功能,我需要将其写入数据库。
function display(){
var i;
var d = new Date();
var n = d.getDate();
for (i=1;i<=30;i++) {
if(i==n) {
var ans = document.getElementById("name"+ i).value
document.getElementById("answer"+ i).innerHTML="Jūsų atsakymas: "+ans.bold();
var ajax = new XMLHttpRequest(),
url = 'button_sql.php?answer=' + encodeURIComponent(ans);
ajax.open("GET", url, true);
ajax.send();
}
}
return false;
}
这是我的db.php我不知道如何正确使用它。
<?php
session_start();
$name = John;
$answer= $_SESSION['answer22']; // I've tried this but unsuccessful
$mysqli = new mysqli("localhost","asd","asd","asd");
if ($stmt = $mysqli->prepare("INSERT into myTable (answer, userName) VALUE (?,?) ")) {
if (!$mysqli->set_charset("utf8")) {
printf("Error loading character set utf8: %s\n", $mysqli->error);
} else {
// printf(" ", $mysqli->character_set_name());
}
$stmt->bind_param('ss', $answer, $name);
$stmt->execute();
if ($stmt->error != '') {
echo ' error:'.$stmt->error;
} else {
echo 'success';
}
$stmt->close();
} else {
echo 'error:'.$mysqli->error;
}
$mysqli->close();
?>
我尝试过使用它,但没用:
<form method="post" action="button_sql.php" onsubmit="return display()">
所以有人可以帮助我吗?非常感谢你。
答案 0 :(得分:1)
问题在于,如果在使用旧模型添加的事件侦听器中使用return false
,则会阻止默认操作。
在您的情况下,由于display
,您的事件监听器return false
会阻止表单(正在提交)的默认操作。
如果您想在不重新加载页面的情况下提交表单,则应使用AJAX代替。
例如,使用以下内容:
var ajax = new XMLHttpRequest(),
url = 'button_sql.php?answer' + i +'=' + encodeURIComponent(ans);
ajax.open("GET", url, true);
ajax.send();
您也可以使用onreadystatechange
。
在db.php
:
$answer = $_GET['answer22'];
答案 1 :(得分:0)
在false
函数中返回display
将导致表单无法提交,如果您希望表单实际提交,则应返回true