Ajax - 单击按钮更新数据库

时间:2017-09-06 06:47:09

标签: javascript php jquery mysql ajax

我需要一些项目的帮助。我还在学习javascript和jquery,所以请耐心等待。我正在处理的网站需要在单击按钮时更新数据库条目,还会从数据库中查询按钮内容。

获取按钮的第一个数据库查询:

<?php
    $freq_sql = "SELECT freq FROM disc_freq WHERE in_use='0'";
    $result_freq = $connection->query($freq_sql);
    echo "<h5>Available frequencies</h5>";
    while($row = mysqli_fetch_array($result_freq)){
        $set_freq=$row[0];
?>
<a id='button' class='w3-bar-item w3-button'><?php echo $set_freq ?></a>

然后我尝试了ajax脚本,但它有问题

$(document).ready(function(){
    $("#button").click(function(){
        $.ajax({
            url: "set_freq.php",
            type: "POST",
            data: {"set_freq":<?php echo $set_freq ?>}, 
            success: function(data){
                data = JSON.toString(data);

            }
        });
    });
});

最后是php文件

<?php
session_start();
include("konf.php");  
if(isSet($_POST['set_freq'])){ 
    $update_sql="UPDATE disc_freq SET in_use = '1', working_usr='".$_SESSION['username']."' WHERE freq='".$_POST['ins_freq']."'";
    $update_run=mysqli_query($connection,$update_sql);  
}  
?>

对于某些人来说,单击时第一个按钮会启动相同数量的ajax调用,显示了多少个按钮。其他人不会做任何事情。

PHP代码确实有效,但唯一的问题是ajax调用,我还没有找到解决方案,所以任何帮助都表示赞赏。

3 个答案:

答案 0 :(得分:1)

请更新您的代码中的代码,js中的ajax脚本中存在错误 更改   你可以改变

的代码
  data: {"set_freq":<?php echo $set_freq ?>},

   data: {"set_freq":'<?php echo $set_freq ?>'},

答案 1 :(得分:1)

首先,您应该阻止您的网页刷新,因为您点击了a代码。

您应该使用@ pritamkumar的答案发送您的数据,或者像我的回答一样发送。

$(document).ready(function(){
    $("#button").click(function(event){
       var data=$(this).text();
        event.preventDefault()
        $.ajax({
            url: "set_freq.php",
            type: "POST",
            data: {"set_freq":data}, 
            success: function(data){
                data = JSON.toString(data);

            }
        });
    });
});

根据您的评论,有许多链接,您应该更改您的选择器。如下所示

<a class='button' class='w3-bar-item w3-button'><?php echo $set_freq ?></a>

还要更改JS代码

$(".button").click(function(event)

答案 2 :(得分:0)

总是将相同的值传递给ajax

data: {"set_freq":<?php echo $set_freq ?>}, 

在html中更改

  <a id='button' class='button w3-bar-item w3-button' data-freq='<?php echo 
    $set_freq ?>'><?php echo $set_freq ?></a>

在js

$(document).ready(function(){
$(".button").click(function(){
    $.ajax({
        url: "set_freq.php",
        type: "POST",
        data: {"set_freq":this.data('freq')}, 
        success: function(data){
            data = JSON.toString(data);
        }
    });
});
});

我没有测试它 - 从&#34;记忆&#34;