将html表中的值保存到数据库

将html表中的值保存到数据库

问题描述:

我有一个显示数据库值的html表。我有一个JavaScript,使我能够编辑这些数据,但我不知道如何使用PHP将其保存回数据库。我发现一些信息,我应该使用xmlhttprequests,但我不知道如何做到这一点。有什么建议么?非常感谢您的帮助。下面的代码;将html表中的值保存到数据库

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <title>Untitled Document</title> 
    <script type="text/javascript"><!-- 

    function edit_input(obj) { 
    var is_checked = obj.checked; 
    while (obj.tagName!='TR') 
    obj = obj.parentNode; 

    var td = obj.getElementsByTagName('TD'); 
    var len = td.length; 

    if (!is_checked) { 

    for (var i=0; i<len; i++) 
    if (td[i].className=='editable') 
    td[i].innerHTML = td[i].firstChild.value; 


    } else { 

    var input; 

    for (var i=0; i<len; i++) 
    if (td[i].className=='editable') { 
    input = document.createElement('INPUT'); 
    input.value = td[i].innerHTML; 
    td[i].innerHTML = ''; 
    td[i].appendChild(input); 
    } 
    } 

    } 


    --></script> 


    </head> 

    <body> 
    <table border="1"> 
    <tr> 
     <th width="56">Branch ID</th> 
    <th width="75">Branch Name</th> 
     <th width="75">Branch Personnel</th>        
     <th width="105">Branch Headquaters</th> 
    <th width="50">Edit</th> 
    </tr> 
<?php 

$result = mysql_query($query); 
    while ($row= mysql_fetch_array($result)) { ?> 
     <tr> 
      <td class="editable"><?php echo $row['branchid'];?></td> 
      <td class="editable"><?php echo $row['branchname'];?></td>  
      <td class="editable"><?php echo $row['branchpersonnel'];?></td> 
      <td class="editable"><?php echo $row['branchhq'];?></td> 
     <td><input type="checkbox" onclick="edit_inpu(this);">Edit</td> 
     </tr>           
<?php } ?> 
    <tr><td><input type="submit" name="editbranch" class="button2"  value="Update"/></td></tr> 
</table>  
    </body> 
    </html> 
+1

您需要学习AJAX,请参阅http://www.w3schools.com/php/php_ajax_intro.asp –

+3

http://w3fools.com/ ...也许有一个看看那里一旦你已经看过w3schools –

+0

@ RupeshPawar - 你应该避免推荐w3schools。它有一些严重的问题。 – Polynomial

如果使用jQuery是没有问题的,也许使用类似JEditable是一个解决方案。当你点击表格中的一个单元格时,它会变成一个文本字段,当按下输入或离开焦点时,它会向服务器发出网络请求,您可以在其中进行更改。

参见例如this jsfiddle脚本。它非常易于使用。唯一需要做的其他事情是给表格单元一个id,它会被发送到你保存的页面。

+0

嗨Ikke,谢谢,但像使用jQuery一样简单,我以前没有使用它。我知道我应该学习它,但我现在不能应用它。任何其他想法? – Nas

+0

学习jQuery比学习javascript和XHR更容易。该组件为您处理所有工作。 – Ikke

+0

一定要试一试! – Nas

您的脚本是否通过XMLHttpRequest触发了一个Ajax请求,该脚本将值保存回数据库。

的URL可以是这样的:updatetable.php?row=0&col=0&data=1234

+0

我试图理解你,但不知何故我迷路了。所以我应该有一个单独的PHP脚本,做更新然后解决我的更新按钮作为updatetable.php?row = 0&col = 0&data = 1234 ?这是什么意思? – Nas

+0

不,您应该使用Ajax来触发对脚本的HTTP请求。请参阅我链接的XMLHttpRequest文档。 – Polynomial

+0

好吧,正在工作... – Nas

您可以使用jQuery,很受欢迎。

你要下载的lib和包括,它的头

http://code.jquery.com/jquery-1.7.min.js

,并在这里是你如何使用jQuery的一个Ajax请求:

http://api.jquery.com/jQuery.ajax/

的网址PARAM是你的位置发送值来保存他们喜欢的帖子。