以前的数据被添加而不是被当前的编辑数据代替

时间:2018-10-01 19:27:45

标签: javascript jquery

尝试使用编辑和删除创建简单的操作。当前具有编辑功能。

功能如下:

1)用户单击编辑图标,引导程序模版将打开,其中包含从包含用户ID的ajax请求中获取的表单信息。表单值字段会根据获取的Ajax请求自动填充。

2)用户可以编辑自动填充的表单字段,以编辑用户信息,然后发出单独的ajax请求来编辑用户记录。

问题:

这一切都按我想要的方式工作,但是我注意到一个小错误,当我去编辑用户信息,单击发送然后关闭模式以打开和编辑另一个用户信息并单击时,我卡在了一个小错误上再发送一次,以前的表单数据将添加到我当前正在编辑的数据上,但我不希望这样做。我只想打开模式并编辑并发送当前用户的数据。

此外,我还注意到,如果我继续尝试编辑多个用户信息,则每次尝试编辑另一个记录时都会发送多个ajax请求。我尝试查找问题,但我认为这是由于事件冒泡,我尝试了e.stopPropagation;return false;而无济于事。我觉得我已经接近了,但是我想念一些东西。

如果您还需要我的HTML代码,我会很乐意显示。

这是我的代码:

    	$(document).on('click', 'i.fas.fa-edit', function(userId){

    		emailField.value = 'Please wait...!';
    		fullnameField.value = 'Please wait...!';
    		areaField.value = 'Please wait...!';
    		personField.value = 'Please wait...!';
    		// By Default
    		adminAccess.checked = false;
    		personField.style.display = 'block';

    		adminAccess.addEventListener('click', function(){
    			if(adminAccess.checked == true) {
    				areaField.style.display = "none";
    			} else {
    				personField.style.display = "block";
    			}
    		});

   			var usersId = {
   				usersId: userId.target.id
   			}
   			// Select user data
    		$.ajax({
    			method: 'POST',
    			url: 'select-user-action.php',
    			data: usersId,
    			success: function(data){

    				var parseData = JSON.parse(data);
    				
    				parseData.forEach(function(element){

    					emailField.value = element.email;
    					fullnameField.value = element.name;
    					areaField.value = element.areaField;
    					personField.value = element.personField;

    				});
    			}
    		});
    	});
      
      $('#editModal').on('show.bs.modal', function () {


    		submitForm.addEventListener('submit', function(e){
    			// prevent form from submitting
    			e.preventDefault();
    			

				var editData = {
					"email": emailField.value,
					"fullName": fullnameField.value,
					"areaField": areaField.value,
					"personField": personField.value
				};

                // Previous data is being added onto current edited data.. This is what I'm stuck on.
    			console.log(editData);


    			// $.ajax({
    			// 	method: 'POST',
    			// 	url: 'edit-user-action.php',
    			// 	data: editData,
    			// 	success: function(data){
    			// 		console.log(data);
    			// 	}
    			// });
          
          // this didnt work
    			return false;
    		});
		});

0 个答案:

没有答案