2015-11-23 28 views
0

我有以下功能,它允许我双击表格中的内容并对其进行编辑。我现在遇到的问题是我不确定如何实现在数据库中更新的功能,以便一旦按下Enter键,更改就会保留。使用jQuery来更新点击编辑功能上的数据库

UPDATE:

我有以下但不发布到PHP文件

PHP

include("../../db.php"); 
$requestHandled = "UPDATE requests SET Status = 1 WHERE RequestID = '".$_POST['RequestID']."'"; 
mysqli_query($requestHandled) or die(mysql_error()); 

HTML

<td class="RequestID"><?php echo $id; ?></td> 
<td class="Address"><?php echo $addr; ?></td> 
<td><?php echo $sub; ?></td> 
<td><?php echo $info; ?></td> 
<td><?php echo $date; ?></td> 

的Jquery:

$(function() { 
    $(".Address").dblclick(function() { 
     var OriginalContent = $(this).text(); 
     $(this).addClass("cellEditing"); 
     $(this).html("<input type='text' value='" + OriginalContent + "' />"); 
     $(this).children().first().focus(); 
     $(this).children().first().keypress(function (e) { 
      if (e.which == 13) { 
       var newContent = $(this).val(); 
       $(this).parent().text(newContent); 
       $(this).parent().removeClass("cellEditing"); 
      } 
     }); 
    $(this).children().first().blur(function(){ 
     $(this).parent().text(OriginalContent); 
     $(this).parent().removeClass("cellEditing"); 
    }); 
     $(this).find('input').dblclick(function(e){ 
      e.stopPropagation(); 
     }); 
    }); 
}); 

$('.Address').keypress(function (e) { 
var key = e.which; 
if(key == 13) // the enter key code 
    { 

jQuery.ajax({ 
    url: "functions/updateAddress.php", 
    type: "POST", 
    data: {RequestID: $('.RequestID').text(), Address: $('.Address').text()}, 
    success: function(response) 
    { 
     alert("Updated Address!"); 
    } 
}); 

    } 
}); 
+1

AJAX是你的朋友,基本上每次更新并保存到数据库时调用服务器 - 谷歌' jquery ajax' –

+1

在输入事件中, 1.使用某些数据和对象标识符调用Ajax。 2.现在从params中获得这个标识符。 3.从数据库中获取对象并进行更新。 – GrvTyagi

+0

在您的JQuery中进行AJAX调用。看看http://stackoverflow.com/questions/17358771/update-data-in-a-table-with-jquery-and-ajax –

回答

0

你不能用jquery更新数据库,因为你的数据库在你的服务器中,而不在客户端。 jQuery是JavaScript的客户端,你需要给我们更多的信息,帮助我们。

你在你的服务器中使用什么编程语言?

腓例如是一种编程语言服务器端,也Node.js的,等等

的逻辑是:

您使用信息发送到服务器端的AJAX。

<label for="email">Email:</label> 
<input type="email" id="email" name="email"> 
<input type="hidden" id="id_user" name="id_user"> 
<a href="javascript:;" id="update_user_btn">Update User!</a> 

那么你就写与jQuery的事件这样的关联的Ajax功能:

$('#update_user_btn').on("click",function(){ 
    $.ajax({ 
    url: "update_user.php", 
    method: "POST", 
    data: {email: $('#email').val(), id: $('#id_user').val()} 
    }).done(function(res){ 
    console.log(res); 
    //"Updated data successfully\n"; 
    //IF ALL IS OK!! 
    }); 
}); 

然后在你的服务器端收到这个PARAMS与

<?php 
$email = $_POST['email']; 
$id = $_POST['id']; 
$sql = "UPDATE users SET email = '$email' WHERE id_user = '$id'"; 

//You need create a database connection 
$dbhost = 'localhost'; 
$dbuser = 'root'; 
$dbpass = 'rootpassword'; 

$conn = mysql_connect($dbhost, $dbuser, $dbpass); 
if(! $conn){ 
    die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db('test_db'); 
$retval = mysql_query($sql, $conn); 
if(! $retval) { 
    die('Could not update data: ' . mysql_error()); 
} 
echo "Updated data successfully\n"; 
mysql_close($conn); 
?> 

关注!这是php的一个例子,因为它是最流行的语言编程服务器端web,仅仅用于解释服务器端和客户端的逻辑和差异。 也报告说,mysql功能已过时,现在使用mysqli(这些是连接到数据库类型MYSQL的功能)

+0

谢谢,这有助于很多。你能检查我的编辑吗? –

+0

嗨,显然是好的,但你现在需要什么? – Netzach

+0

由于没有更新正在发生,它不会将该文章发布到php文件中。但它确实显示警报。 –