Javascript 单击按钮更新数据库
我已经为此挣扎了几天。我有一个网页,上面有一个动态创建的数据表(使用php和datatable)。一切都很好。现在我有两列,每行有按钮:Javascript 单击按钮更新数据库,javascript,php,jquery,mysql,Javascript,Php,Jquery,Mysql,我已经为此挣扎了几天。我有一个网页,上面有一个动态创建的数据表(使用php和datatable)。一切都很好。现在我有两列,每行有按钮: NAME | ADDRESS | STAGE | ASSIGN John 9 Doe Way btnS btnA 我只想在用户单击BTN或btnA时运行一个简单的更新查询,并将被单击的人放入此活动的阶段或分配类别。(我可以在数据库中处理该部分)。如果我有一个超链接而不是按钮,我可以做得很好。我希望页面刷新,因为将从我的列表中删除该名称
NAME | ADDRESS | STAGE | ASSIGN
John 9 Doe Way btnS btnA
我只想在用户单击BTN或btnA时运行一个简单的更新查询,并将被单击的人放入此活动的阶段或分配类别。(我可以在数据库中处理该部分)。如果我有一个超链接而不是按钮,我可以做得很好。我希望页面刷新,因为将从我的列表中删除该名称
那么,如何获取动态创建的按钮行的ID呢?如果需要,我有一个隐藏的ID字段
我会粘贴代码,但我不知道正确的方向。我试过jquery(函数),formpost函数,但似乎什么都不起作用
谢谢 您可以向按钮插入onclick属性,如下所示:
<button onclick="location.href='http://www.example.com/yourscript.php?id='+ parentNode.parentNode.childNodes[0].innerHTML" />Delete</button>
删除
还有另一个解决方案:
<form action="">
<input type="submit" name="SaveChanges" value="Delete" onclick="this.form.action='http://www.example.com/yourscript.php?id='+ parentNode.parentNode.childNodes[0].innerHTML;" />
</form>
所以
IDAddressDelete
1.
约翰
9多伊路
删除
您可以使用AJAX请求,使用一个php代码以JSON格式提供名称和地址,并使用另一个代码更新数据库。去掉创建表所需的php代码,并通过Javascript创建表。然后,您将能够动态更改表,而无需刷新页面。它将使您的站点对您的服务器更轻松
编辑:
你可以在你的问题下面看到你的评论,他也给了你一些提示。有几种方法可以解决这个问题。在说你可以通过超链接来实现这一点时,我假设你只是导航到一个URL 我将为您提供3个选项: 备选案文1: 使用超链接,但使用CSS使其看起来像按钮 类似于
a
{
display:inline-block;
padding: 2px 5px;
background-color: #ccc;
border: 1px solid #000;
text-decoration:none;
}
a:active
{
background-color:blue;
}
将使它看起来更像一个按钮
备选案文2:
使用jQuery,您只需将重定向绑定到click事件:
$("a").click(function(){
parent.location = url;
});
备选案文3:
使用表单,您可以使用提交按钮提交到URL
<form action="your url here">
<input type="submit" value="Submit"/>
</form>
这些选项中的任何一个都会产生您想要的结果。啊,看看您对动态获取行ID的看法——完全不同的答案。在动态输出html(通过php)中,将
数据rowid=$rowid
输出到按钮元素上;使用jQuery,您可以通过使用按钮的单击事件中的$(this.data('rowid')
来检索数据
属性
例如,您将得到如下结果,每行输出的数据rowid都会增加:
<td>myDataBaseDetails....</td><button class='buttonClass' data-rowid='15'>Click!</button>
<script>
$('.buttonClass').click(function() {
var id = $(this).data('rowid');
//update your database with AJAX
$.ajax({
url: "http://www.yoursite.com/script.php?rowid=" + id
}).done(function() {
location.reload();
});
});
</script>
myDataBaseDetails….点击!
$('.buttonClass')。单击(函数(){
var id=$(this.data('rowid');
//使用AJAX更新数据库
$.ajax({
url:“http://www.yoursite.com/script.php?rowid=“+id
}).done(函数(){
location.reload();
});
});
您如何处理点击事件?添加代码。制作一个表单并将值发布到同一个页面,如果您只是想刷新页面,请不要使用任何jquery函数。可能最简单的方法是用php构建数据库查询结构(使用URL查询参数来更改查询),然后在单独的文件中使用应用程序/JSON
头将其输出为JSON。然后,当单击按钮检索JSON并更新表时,您可以通过jQuery轻松地使用AJAX。我尝试使用jquery,然后是一个函数,然后尝试使用php进行更新。我想我很接近了。我想我可以有另一个页面进行php更新,并将我发送回刷新后的当前页面。然而,有没有更简单的方法?如果我知道按钮的名称,我只需执行以下操作:If(isset($\u POST['SaveChanges]){update database}动态创建的按钮的问题是,我无法找出如何获取名称来执行此操作?如果使用
标记,则无法对按钮使用$\u POST
。基本上,您可以将name
atribute添加到输入提交中,然后它就像表单中的普通按钮一样工作。然后您的isset()
工作。请参阅我的编辑。按钮样式在不同的平台或浏览器中不是全局的。@阿克苏:不是,但这与问题无关。如果他想让它看起来像一个特定类型的按钮,他可以让它与CSS一起工作。
<td>myDataBaseDetails....</td><button class='buttonClass' data-rowid='15'>Click!</button>
<script>
$('.buttonClass').click(function() {
var id = $(this).data('rowid');
//update your database with AJAX
$.ajax({
url: "http://www.yoursite.com/script.php?rowid=" + id
}).done(function() {
location.reload();
});
});
</script>