Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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 重新加载具有相同内容的div_Javascript_Jquery_Html_Mysql_Css - Fatal编程技术网

Javascript 重新加载具有相同内容的div

Javascript 重新加载具有相同内容的div,javascript,jquery,html,mysql,css,Javascript,Jquery,Html,Mysql,Css,我有一个div,其中包含从Mysql中提取的客户端列表 在同一个页面上,我有一个jquery对话框,它会弹出,允许用户添加一个新的客户端 我想做的是,当用户添加一个新的客户端时,将重新加载包含该列表的客户端,以便新客户端可用 有没有一种方法可以在不使用Load()函数的情况下重新加载div,因为当我重新声明填充列表的类时,这会导致错误?当然。如果不看代码,这里的混乱表明您不理解“关注点分离”。将获取信息的过程与显示该信息的过程分开。当用户输入新信息时,将其添加到从服务器获得的javascript

我有一个div,其中包含从Mysql中提取的客户端列表

在同一个页面上,我有一个jquery对话框,它会弹出,允许用户添加一个新的客户端

我想做的是,当用户添加一个新的客户端时,将重新加载包含该列表的客户端,以便新客户端可用


有没有一种方法可以在不使用Load()函数的情况下重新加载div,因为当我重新声明填充列表的类时,这会导致错误?

当然。如果不看代码,这里的混乱表明您不理解“关注点分离”。将获取信息的过程与显示该信息的过程分开。当用户输入新信息时,将其添加到从服务器获得的javascript数组或信息对象中,并将其发送到服务器,以便在数据库中进行更新。然后使用更新的信息再次运行显示功能,以包括新信息。理想情况下,如果可能,显示过程将使用现有标记,而不是删除所有标记并重新创建所有标记以添加一个项目。理想情况下,您可以接受这个概念并对其进行扩展,以使其具有最佳的效率和组织性

下面是我的jsbin中的示例代码。请记住,这只是为了让你开始

var info = [1,2,3,4,5]; //this is what you got from your ajax call to the server

function render(element, info) {
  //this is a lazy system that recreates/replaces all the markup each time. I suggest doing this more efficiently, but that is work for you to do :)
  var frag = document.createDocumentFragment();
  var len = info.length;
  for (var i=0; i<len; ++i) {
    var p = document.createElement('p');
    p.textContent = info[i];
    frag.appendChild(p);
  }
  element.innerHTML = '';
  element.appendChild(frag);
}

var targetElem = document.getElementById('targetElem');

render(targetElem, info);

var addButton = document.getElementById('add');
var input = document.getElementById('infoInput');
addButton.addEventListener('click', function() {
  info.push(input.value); //update the information
  render(targetElem, info); //render the updated information
});
var info=[1,2,3,4,5]//这是您从对服务器的ajax调用中得到的
函数渲染(元素、信息){
//这是一个懒惰的系统,每次都会重新创建/替换所有标记。我建议更有效地执行此操作,但这是您要做的工作:)
var frag=document.createDocumentFragment();
var len=信息长度;

对于(var i=0;i当然。如果不看代码,您在这里的困惑表明您不理解“关注点分离”。将获取信息的过程与显示信息的过程分开。当用户输入新信息时,将其添加到从服务器获取的javascript数组或信息对象中,并将其发送到服务器以在数据库中更新。然后使用更新的信息再次运行显示功能,以包括新信息。理想情况下,显示过程将尽可能使用现有的标记,而不是删除所有标记并重新创建所有标记以添加一个项目。理想情况下,您将采用此概念并对其进行扩展,以使其具有最佳的效率和组织性

这是我的jsbin中的示例代码。请记住这只是为了让您开始

var info = [1,2,3,4,5]; //this is what you got from your ajax call to the server

function render(element, info) {
  //this is a lazy system that recreates/replaces all the markup each time. I suggest doing this more efficiently, but that is work for you to do :)
  var frag = document.createDocumentFragment();
  var len = info.length;
  for (var i=0; i<len; ++i) {
    var p = document.createElement('p');
    p.textContent = info[i];
    frag.appendChild(p);
  }
  element.innerHTML = '';
  element.appendChild(frag);
}

var targetElem = document.getElementById('targetElem');

render(targetElem, info);

var addButton = document.getElementById('add');
var input = document.getElementById('infoInput');
addButton.addEventListener('click', function() {
  info.push(input.value); //update the information
  render(targetElem, info); //render the updated information
});
var info=[1,2,3,4,5];//这是您从对服务器的ajax调用中得到的信息
函数渲染(元素、信息){
//这是一个懒惰的系统,每次都会重新创建/替换所有标记。我建议更有效地执行此操作,但这是您要做的工作:)
var frag=document.createDocumentFragment();
var len=信息长度;

对于(var i=0;i这两种方法中的任何一种都会给你带来成功

success: function(userinfos) {
                 $("#users").append($('<tr><td>'+userinfos+'</td></tr>'))
                 display_message("user added");
               }

这两者中的任何一个都会给你带来成功

success: function(userinfos) {
                 $("#users").append($('<tr><td>'+userinfos+'</td></tr>'))
                 display_message("user added");
               }

是的,使用.load使用的底层$.ajax方法。但是,.load可能会更容易。请提供您已经尝试过的示例。是否必须将新客户端添加到数据库中?如果不需要,您可以使用jquery创建元素并将其附加到DOM。您是否从ajax请求中检索用户信息?是的,使用底层$.load使用的.ajax方法。但是,.load可能更容易。请提供您已经尝试过的示例。是否必须将新客户端添加到数据库?如果不需要,您可以使用jquery创建元素并将其附加到DOM。您是否从ajax请求中检索用户信息?