使用js / jquery / ajax获取精确的mysql单元格内容

时间:2017-08-20 19:51:03

标签: javascript php jquery mysql ajax

我想问一下网页功能构建的任何线索。目标是从MySQL表中读取一个单元格,然后将其放在网页表的一个单元格中。接下来,该单元必须每x秒自刷新一次。整个网页表将从一开始就有25行25个刷新列。 Mysql表有26列,但只有25列包含所需和可编辑的数据。

一点编码:

主站点:网页单元格,其中包含刷新内容(现在包括非工作和原型编码)

<td>map_loader2(1,2) &nbsp;<div id="whateva"></div></td>    

PHP请求在单独的.php文件中用于调用函数(仅在这里我确定它已正确编写并正常工作):

<?php
$servername = "localhost";
$username = "root";
$password = "admin";
$dbname = "map";
$loader="select c$column from map_1 WHERE map_1.RowNumber = $row ";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}


$result=$conn->query($loader);
$array = mysql_fetch_row($result);
echo json_encode($array);
if ($conn->query($loader) === TRUE) {
   // echo "Updated successfully";
   header("Location: http://sectortrader/main_site_editor.php"); /* Redirect browser */

} else {
    echo "Error updating record: " . $conn->error;
}

$conn->close();
?>

最后 - 我在很多失败的尝试和数十个不同的教程之后设法创建的,在W3上有无数的文档页面,其他几个来源:

<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script language="javascript" type="text/javascript">
setInterval(function map_loader2(column, row)
    {
    $("#whateva").load("map_loader_query.php");
    },5000); //refreshing interval
</script>

至于现在它只按预期在5秒后刷新(但显示错误 - 因为它没有获得正确的查询值),但我无法弄清楚如何强制它为该函数获取参数。我在PHP和MySQL中非常绿色,而且是js / jQuery / ajax中的全新手。然而,我试图写的这个迷你游戏也试图改善我的弱技能。

感谢您节省时间。

PS。 我完全忘了分享我之前尝试过的功能:

<?php

function map_loader($column, $row)
    {
    $servername = "localhost";
    $username = "root";
    $password = "admin";
    $dbname = "map";
    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) 
        {
        die("Connection failed: " . $conn->connect_error);
        }
    $loader="select c$column from map_1 WHERE map_1.RowNumber = $row ";
    $result=$conn->query($loader);
    $conn->close();
    return $result; 
    }
?>

我只想按照以下方式使用它:

<tr>
        <td rowspan="25">&nbsp;</td>
        <td>1</td>
        <td>window.map_loader2(1,1) &nbsp;</td>
        <td>map_loader2(1,2) &nbsp;<div id="whateva"></div></td>
        <td>&nbsp;</td>
.
.
.
<tr>
        <td>2</td>
        <td><?php  map_loader(2,1); ?>&nbsp;</td>
        <td><?php  map_loader(2,2); ?>&nbsp;</td>
        <td>&nbsp;</td>
.
.
.

依此类推,又一次又一次......当然,它可以以某种方式更好地完成 - 但首先我想让它发挥作用,其次它可以改进。不幸的是,它不会像我一样轻松地工作  想。

1 个答案:

答案 0 :(得分:0)

首先,您必须使用Ajax来完成您想要完成的任务。您需要创建一个每隔5秒执行一次的设置间隔函数,然后在其中ajax将调用map_loader_query.php页面,然后success函数将返回数据。如果从DB查询的数据只是html,您只需要在div whateva或td中插入查询的数据。

<td><div id="whateva"></div></td>    

<script>
    setInterval(function()
    { 
        $.ajax({
          type:"post",
          url:"map_loader_query.php",
          success:function(data) {
              $('div#whateva').html(data);
          }
        });
    }, 5000);
</script>