我需要简单的事情,通过单击按钮将数据插入数据库,但我无法成功完成。
这是按钮.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()">
有人可以帮助我吗?非常感谢。
最佳答案
问题是,如果您在使用旧模型添加的事件监听器中使用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'];
关于javascript - JavaScript。单击按钮将数据插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20132629/