我需要帮助,我是ajax的初学者。我正在尝试创建一个计时器,我想要当他单击按钮时,他得到经过ajax和数据库插入的值。当我执行代码时,它没有错误,但是也没有插入数据库。
<?php
$pdo = new PDO('mysql:host=localhost;dbname=jeu', 'root', '', array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING,
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES cp1256'
));
?>
<!doctype html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body >
<span id="mySpan" style="font-size: 80px;">20</span>
<input id="arret" type="button" value="Arret">
<script type="text/javascript">
function decrementer() {
if ( mySpan.innerHTML > 0 ) {
mySpan.innerHTML-- ;
setTimeout(decrementer, 1000);
}
}
setTimeout(decrementer, 1000) ;
var element = document.getElementById('arret');
element.onclick = function() {
var chrono=mySpan.innerHTML;
$.ajax({
type: "GET",
data: {chrono : chrono},
success: function(data)
{
console.log(chrono);
}
});
};
</script>
<?php
if(isset($_GET['chrono']))
{
$uid = $_GET['chrono'];
echo($uid );
$resultat = $pdo -> prepare("INSERT INTO ajaxtest (name) VALUES (:name)");
$resultat -> bindParam(':rep', $uid, PDO::PARAM_STR);
if($resultat -> execute()){
$id_insere = $pdo -> lastInsertId();
}
}
?>
</body>
</html>
答案 0 :(得分:2)
我建议您将php和html分开,然后使用ajax将数据发送到php。
在您的php上,您绑定了=
,但您的占位符是:rep
,因此您需要绑定:name
:name
html边。
$resultat -> bindParam(':name', $uid, PDO::PARAM_STR);
somefile.php
<!doctype html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body >
<span id="mySpan" style="font-size: 80px;">20</span>
<input id="arret" type="button" value="Arret">
<script type="text/javascript">
function decrementer() {
if ( mySpan.innerHTML > 0 ) {
mySpan.innerHTML-- ;
setTimeout(decrementer, 1000);
}
}
setTimeout(decrementer, 1000) ;
var element = document.getElementById('arret');
element.onclick = function() {
var chrono=mySpan.innerHTML;
$.ajax({
type : "POST",
url : "somefile.php", //url to send data to
data: {chrono : chrono},
success: function(data)
{
console.log(data); //log data back
}
});
};
</script>
</body>
</html>