2013-04-09 122 views
-2

我有一個問題,我如何將數據插入MySql數據庫與JavaScript?javascript:如何將數據插入到mysql

我有以下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數據庫中,這個表格將顯示在第二頁上,但是如何組織這些數據插入然後顯示我不知道......任何人都可以幫助我嗎?

+0

聽起來像是[AJAX](https://en.wikipedia.org/wiki/Ajax_(編程)) – showdev 2013-04-09 20:58:52

+0

@showdev一個工作,你可以提供有關如何使用Ajax做一些例子嗎? – vladimir 2013-04-09 21:01:04

+0

您必須使用服務器端編程語言與數據庫進行交互。 – js1568 2013-04-09 21:12:33

回答

0

您將需要某種類型的服務器端軟件來連接到您的數據庫。 Javascript和HTML本身不會讓你在那裏。您可以創建一個AJAX請求(或一個標準的POST),但後端必須有響應請求的地方。您是否正在服務器上運行以下任一項:ColdFusion,PHP,Python,Ruby,C++,Java,ASP,Perl?

編輯:

像@showdev建議,你可以使用AJAX來發表您的請求,這將運行在你的數據庫的INSERT語句PHP頁面(見@ blunderBoy的答案)。聽起來像是你有你正在使用輸入數據在屏幕上的形式,如果你使用jQuery,您的AJAX請求可能是這樣的:

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

其中test.php是您要發佈帖子的網址,並testform是您的輸入所在表單的ID。

將該行放入要將該行附加到表的saveData()函數中。

+0

在服務器上,我正在運行php – vladimir 2013-04-09 21:11:51

0

你不能單獨通過JavaScript來完成。您需要了解客戶端和服務器端的區別。查看您的所有JS代碼將在用戶瀏覽器上運行因此,您無法像mySql一樣在客戶端提供永久存儲。你有一些HTML5存儲API,比如webstorage,localstorage,但是這些API對大小和其他都有限制。我不打算深入這些。所以我們在服務器端有我們的數據庫。當我們需要一些數據時,我們發送獲取請求並獲取它。同樣,我們想要保存一些數據,我們會用數據發佈一個請求。我們在後端運行一些服務,響應這些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); 
?> 
+0

可以作爲使用php進行數據庫交互的一個很好的示例。工作很好。 – 2013-04-10 08:21:03

+0

OfCourse您需要在此清除HTML標籤並使用echo返回您想要的任何內容。這只是數據庫交互的一個非常基本的示例代碼。如果你瞭解基本的PHP,你會得到它。 – sachinjain024 2013-04-12 00:48:51