如何使JS在Button Click / Dropdown打开时将数据发送到PHP?

时间:2019-04-11 11:58:35

标签: javascript php jquery html ajax

我正在Web应用程序上开发一个Notification System,但是对JS / Ajax还是陌生的。我需要做的是向我的PHP发送一个变量,该变量在服务器上运行一个Update代码以将通知设置为已读,理想情况下,当用户打开Notification Dropdown时。

我尝试使用OnClick函数,但是该按钮似乎没有激活Ajax,因为没有数据被更新。目前,我还在尝试在标签上使用'data-role'+在标签上使用$(document).on('click','a [data-role = ...) ajax似乎没有激活。我环顾四周,似乎没有找到任何与此类事物相关的信息。我不知道由于标签已经在切换下拉菜单,因此无法切换ajax吗?
免责声明:这是我在这里的第一个问题,对不起,如果我过于简化/过于复杂。

Ajax代码

films

当用户单击下拉开关时应激活哪个

favorites

我的Notification.php具有以下代码。

$(document).ready(function(){
  $(document).on('click','a[data-role=update]',function(){
    var read  = 'Y';
    $.ajax({
      url      : 'Notification.php',
      method   : 'post',
      data     : {read : read},
      success  : function(response){
        // now update user record in table
        alert("Ajax sent the info!");
      }
    });
  });
});

当用户打开下拉列表,并且当用户更改页面时,我希望ajax通过post为PHP发送var,并且当用户更改页面时,通知应该消失了。我单独测试了PHP,它确实更新了表上的数据。但是,当我打开下拉列表时,没有任何与Ajax相关的事情发生,它只是正常打开下拉列表,不会激活Ajax。

1 个答案:

答案 0 :(得分:0)

由于@NicoHaase的网络调试建议,我得以找到问题所在。 Ajax网址不正确。我更正了网址,并且代码正常工作。

我必须更改URL才能获取Notification.php的正确路径

$(document).ready(function(){
  $(document).on('click','a[data-role=update]',function(){
    var read  = 'Y';
    $.ajax({
      url      : '../../resource/include/Notification.php',
      method   : 'post',
      data     : {read : read},
      success  : function(response){
        // now update user record in table
        alert("Ajax sent the info!");
      }
    });
  });
});

问题似乎发生了,因为即使Notification.php与我使用a标记的菜单文件位于同一文件夹中,也已将其导入另一个文件夹的索引文件中,所以我不得不适应那条路。谢谢Nico Hasse。