如果Div不可见,则用于更新数据库的PHP/JQuery/AAJAX


PHP / JQuery / AJAX for Updating Database if Div is not visible

我有一个复杂的网站设置,所以我只举一个简单的例子。

当前设置

我有两个按钮。

<a id="one" href="#">Link 1</a>
<a id="two" href="#">Link 2</a>

我有两个潜水器

<div id="showOne" style="display:none">1</div>
<div id="showTwo" style="display:none">2</div>

这是我的JQuery代码

$('#one').click(function (e) {
    $('#showOne').show();
});
$('#two').click(function (e) {
    $('#showTwo').show();
});

我正在努力实现的目标

基本上,我有一个数据库表设置,其中有一行用来计算div(showOne)和div(showTwo)显示的次数。

如果display=block,我将如何使用AJAX向数据库行(也称为计数器)添加一个?

我的尝试

$('#one').is(":visible")
{
$.ajax({
    type:"POST"
    url: update.php
    data: {type:link_one_shown}
    success: function(data){
      alert("Test");
    }
})

当我这样做时,我的JQuery代码的其余部分就会崩溃。不确定这是没有意义还是我只是写错了什么。

提前谢谢!

我能看到的三个问题:

  1. 正如Akam所指出的,您已经破坏了if语句
  2. data不正确——link_one_shown应该是一个变量(您还没有定义?)或字符串文字
  3. ajax函数参数之间缺少逗号

这是修改后的代码:

if ($('#showOne').is(":visible")) {
    $.ajax({
        type:"POST",
        url: update.php,
        data: { type: "link_one_shown" },
        success: function(data){
          alert("Test");
        }
    });
}

为什么不将ajax调用移到函数中,并在显示div时调用它,这样可以避免代码重复,使其更简单。

$('#one').click(function (e) {
    $('#showOne').show();
    updateDB('link_one');
});
$('#two').click(function (e) {
    $('#showTwo').show();
    updateDB('link_two');
});

function updateDB(link)
{
    $.ajax({
        type:"POST"
        url: update.php
        data: {type:link}
        success: function(data){
          alert("Test");
        }
    });
}