使用Ajax插入行,然后在同一页面刷新中看不到直接PHP的新行

时间:2015-08-25 12:30:09

标签: javascript php ajax mysqli

从body onload事件我得到AJAX用PHP插入一行到数据库然后让PHP读取行计数。然后只使用PHP来获取行数。通过在页面上使用DOM到2个元素来显示计数。 Ajax计数总是比直接PHP计数高1。我在这里缺少什么?

include(' connect.inc.php')行将一个新的mysqli连接返回到$ con变量。

index.php - 使用body onload事件启动insertEvent函数。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<!doctype html>
<html lang ="en">
<head>
    <meta charset="utf-8" />
    <title>Query Test</title>
</head>

<body onload='insertEvent()'>
<a id='ajaxphp'; >AJAX + PHP Row Count:</a><br>
<a id='straightphp'; >Straight PHP Row Count:</a>
</body>

<script type="text/javascript">

function insertEvent()
{
    $.ajax({
          url: 'insertEvent.php',
          type: 'post',
          data: {'x': '1', 'y': '1'},
          success: function(data) {
          document.getElementById("ajaxphp").innerHTML= "AJAX + PHP Row Count: " + data;
          }
    });


var numrows = 0;

<?php
include('connect.inc.php');
$con = ConnectToDatabase();

$query = "SELECT * FROM events ORDER by id ASC";

    if ($stmt = $con->prepare($query))
    {
        // execute query 
        $stmt->execute();

        //Transfers a result set from the last query
        $stmt->store_result();

        // number of results returned
        $num_rows = ($stmt->num_rows);

        echo "numrows = $num_rows;";

    }

mysqli_close($con);
?>

document.getElementById('straightphp').innerHTML = "Straight PHP Row Count: " + numrows;

}

</script>

insertEvent.php - 用于AJAX调用的PHP

<?php
include('connect.inc.php');
$con = ConnectToDatabase();

$x = $_POST['x'];
$y = $_POST['y'];

$query = "INSERT INTO events (x, y) VALUES (?,?)";

if ($stmt = $con->prepare($query)) 
{
    // bind parameters for markers 
    $stmt->bind_param("ss", $x, $y);

    // execute query 
    $stmt->execute();

    //Transfers a result set from the last query
    $stmt->store_result();

}

$query = "SELECT * FROM events ORDER by id ASC";

    if ($stmt = $con->prepare($query))
    {
        // execute query 
        $stmt->execute();

        //Transfers a result set from the last query
        $stmt->store_result();

        // number of results returned
        $num_rows = ($stmt->num_rows);

    }

mysqli_close($con);

echo $num_rows;

?>

0 个答案:

没有答案