jQuery AJAX重新加载特定的div

时间:2014-08-09 11:48:38

标签: javascript jquery html ajax

我有以下代码,作为向数据库添加一些值的代码的一部分。

成功执行$.ajax后,我希望使用刷新的数据重新加载特定的div(使用类' lijst')。

$.ajax({
  url: \"frontend/inc/functions/add_selectie.php\",
  type: \"POST\",
  data: ({ 'p_id' : p_id, 'v_id' : v_id, 'pd_id' : pd_id }),
  cache: false,
  success: function()
  {
    $(\".lijst\").hide().fadeIn('slow');
  }
});

但是,使用此解决方案,只刷新div,而不是那里指定的实际PHP变量。当我手动刷新浏览器时,值会更新。

如何刷新div并更新变量?

2 个答案:

答案 0 :(得分:0)

根据jQuery.ajax文档,“success”的函数签名。

  

类型:功能(PlainObject 数据,String textStatus,jqXHR   jqXHR)请求成功时调用的函数。功能   传递三个参数:从服务器返回的数据 ...

换句话说:

success: function(data) {
  $(".lijst").html(data).hide().fadeIn('slow');
}

答案 1 :(得分:0)

实际上,html中指定的PHP变量在服务器部分工作。当html准备好发送到浏览器时,html中的PHP变量已被替换为有值的字符串。而你的ajax请求将导致PHP更新数据库。因此,当您发送请求然后刷新页面时,PHP将再次替换html中的可变数据。

根据以上所述,您的ajax请求和服务器repsonse不知道PHP变量的存在。所以你必须自己更新内容。

也许你会做这样的事情:

success: function(data) {
    $(".lijst").hide();
    $(".title").html(data.title);         // $(".title") may be a tag that surround a PHP variable
    $(".content").html(data.content);     // the same as $(".title")
    $(".lijst").fadeIn('slow');
}