Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击按钮更新数据库_Javascript_Php_Jquery_Mysql - Fatal编程技术网

Javascript 单击按钮更新数据库

Javascript 单击按钮更新数据库,javascript,php,jquery,mysql,Javascript,Php,Jquery,Mysql,我已经为此挣扎了几天。我有一个网页,上面有一个动态创建的数据表(使用php和datatable)。一切都很好。现在我有两列,每行有按钮: NAME | ADDRESS | STAGE | ASSIGN John 9 Doe Way btnS btnA 我只想在用户单击BTN或btnA时运行一个简单的更新查询,并将被单击的人放入此活动的阶段或分配类别。(我可以在数据库中处理该部分)。如果我有一个超链接而不是按钮,我可以做得很好。我希望页面刷新,因为将从我的列表中删除该名称

我已经为此挣扎了几天。我有一个网页,上面有一个动态创建的数据表(使用php和datatable)。一切都很好。现在我有两列,每行有按钮:

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>