如何在php中检索一个javascript变量并将其添加到数据库

时间:2018-12-12 10:34:36

标签: javascript php mysql ajax

我需要帮助,我是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>

1 个答案:

答案 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>