-2

我有一个问题,如何使用 javascript 将数据插入 MySql DB?

我有以下JS代码:

function saveData()
{
    var table = document.getElementById('tblResult');
    var rowCount = table.rows.length;
    i = rowCount;
    var template = "<tr> <td>"+i+"</td> <td>"+document.getElementById('ctrl_ball_size_val').value+"</td> <td style='text-align: center; background-color: lime;'>± 0.1</td> <td>"+document.getElementById('ctrl_cilindr_height_val').value+"</td> <td style='text-align: center; background-color: lime;'>± 0.1</td> <td>"+document.getElementById('stopwatch').value+"</td> <td style='text-align: center; background-color: lime;'>± 0.1</td> <td>11300</td> <td style='text-align: center; background-color: lime;'>± 0.1</td> <td>1260</td> <td style='text-align: center; background-color: lime;'>± 0.1</td> </tr>";
    $('tbody').append(template);
}

使用此代码,我正在构建一个包含从 html 页面上的输入中获得的动态数据的表。这是表格的 HTML 代码:

<table id="tblResult" class="zebra-striped">
    <thead>
    <tr>
        <th id="ID">Nr.p.k</th>
        <th>d ± △d, mm</th>
        <th style="background-color: lime;">△d, mm</th>
        <th>l ± △l, cm</th>
        <th style="background-color: lime;">△l, cm</th>
        <th>t ± △t, s</th>
        <th style="background-color: lime;">△t, s</th>
        <th>p ± △p, kg/m<sup>3</sup></th>
        <th style="background-color: lime;">△p, kg/m<sup>3</sup></th>
        <th>p<sub>1</sub> ± △p<sub>1</sub>, kg/m<sup>3</sup></th>
        <th style="background-color: lime;">△p<sub>1</sub>, kg/m<sup>3</sup></th>
    </tr>
    </thead>
    <tbody></tbody>
</table>

我在其中插入了这个动态数据。所以我需要将所有 HTML 表插入/保存到 MySQL DB 中,该表将显示在第二页上,但是如何组织这些数据插入然后显示我不知道......有人可以帮我吗?

4

2 回答 2

1

你不能通过 JavaScript 单独完成这一切。您需要了解客户端和服务器端之间的区别。查看您的所有 JS 代码将在用户的浏览器上运行因此您无法像 mySql 那样在客户端提供永久存储。您有一些 HTML5 存储 API,例如 webstorage、localstorage,但这些 API 在大小和其他方面都有限制。我不打算深入研究这些。所以我们在服务器端有我们的数据库。当我们需要一些数据时,我们发送一个获取请求并获取它。同样,我们想保存一些数据,我们用这些数据发出一个 post 请求。我们在后端运行了一些服务,它响应这些 GET 和 POST 请求,并对发送的数据采取适当的措施。如果您想查看与数据库交互的示例 php 代码。看看下面的 PHP 代码与数据库交互。

<?php
/****** 5 Step Story ***********
1. Create a connection
2. Select the database
3. Fire the query
4. Use query result
5. Close the connection
*******************************/

// Step1. Create a connection
$con = mysql_connect("localhost", "root", "root");
if (!$con) {
    die("Database connection could not be established" . mysql_error());
}

// Step2. Select the database
$db_select = mysql_select_db("widget_corp", $con);
if (!$db_select) {
    die("Database could not be selected" . mysql_error());
}
?>
<html>
  <head>
    <title> Database Interaction (MySQL + PHP)  </title>
  </head>
  <body>
    <h1><center><u>Database Interation (MySQL + PHP) </u></center></h1>
    <?php
    // Step3: Querying from Database
      $result = mysql_query("SELECT * from subjects", $con);
      if (!$result) {
        die("Error in firing query on database" . mysql_error());
      }
   // Step4: Using query result
   /* $row is an associative array as well So both types of indexes work on it
      Numeric indexes as well as Keys both work */
      while ($row = mysql_fetch_array($result)) {
        echo $row["id"] . " " .
        $row["menu_name"] . " " .
        $row[2] . " " .
        $row[3] . "<hr>";
      }
   ?>
  </body>
</html>
<?php
   mysql_close($con);
?>
于 2013-04-09T21:19:13.327 回答
0

您将需要某种类型的服务器端软件来连接到您的数据库。仅 Javascript 和 HTML 不会让您到达那里。您可以发出 AJAX 请求(或标准 POST),但后端必须有一些东西才能响应请求。

您是否在服务器上运行以下任何一种:ColdFusion、PHP、Python、Ruby、C++、Java、ASP、Perl?

编辑:

就像@showdev 建议的那样,您可以使用 AJAX 将您的请求发布到 PHP 页面,该页面将对您的数据库运行 INSERT 语句(请参阅@blunderBoy 的答案)。听起来您在屏幕上有一个用于输入数据的表单,如果您使用 jQuery,您的 AJAX 请求可能如下所示:

$.post("test.php", $("#testform").serialize() );

test.php您要发布到的 url 是哪里,并且testform是您的输入所在的表单的 id。

将该行放入您将行附加到表的 saveData() 函数中。

于 2013-04-09T21:10:18.640 回答