Yêu cầu thg 11 15, 2020 5:34 SA 331 0 2
  • 331 0 2
0

Xử lý dữ liệu trong ajax

Chia sẻ
  • 331 0 2

Mình có 1 input nhập vào ID của một người, sau đó click nút load sẽ load ra thông tin người đó + 1 form tặng điểm.

Đoạn Ajax

<script>
jQuery( document ).ready(function( $ ) {
		$('#timshd').click(function(){
			$('.ketquasearch ').addClass('loading');
			//clearTimeout(timeout);
			$.ajax({
					type : 'post',
					dataType : 'text',
					data : { // Danh sách các thuộc tính sẽ gửi đi
							id : $('#txtsodh').val() , 
							gift : '1' , 
							_token: 'PGp7giyJgx7Y3FxR0dszJC6sBLqoxSRpxuqhJGLj'
 						},
					url : "https://localhost/d12/public/timsodh",
					
					success : function (result){
 						$('.ketquasearch').html(result);
					}
				});
		});
}); 
</script>

Code PHP xử lý tìm kiếm ID và load ra form:

echo '<form id="fTangDiem" action="'.route('sendpoint').'" method="POST">'.csrf_field().'
 			<input type="hidden" name="nguoihuong" value="'.$daily->id.'" >
			<input type="hidden" name="nguoitang" value="'.Session::get('id').'" >
			<div class="input-group input-group-lg mb-3">
        <div class="input-group-prepend">
        <button type="submit" class="btn btn-danger " id="btnTangDiem" >Tặng</button>
        </div><input type="number" class="form-control" name="sotien"  placeholder="Nhập số điểm muốn tặng ('.$daily->name.') " required></div></form>';
		
	echo '<script type="text/javascript"> $("#fTangDiem").submit(function(){
			$("#btnTangDiem", this)
			  .html("Đang xử lý...")
			  .attr("disabled", "disabled");
			return true;
		}); </script>';

Câu hỏi của mình là Khi mình đặt đoạn scrip

echo '<script type="text/javascript"> $("#fTangDiem").submit(function(){
			$("#btnTangDiem", this)
			  .html("Đang xử lý...")
			  .attr("disabled", "disabled");
			return true;
		}); </script>';

này trong phần code php kia thì nó chạy Ok, nhưng khi mình đặt nó ở cùng với chỗ ajax kia thì nó lại không chạy.

Cho hỏi làm sao để đặt ở cùng đoạn ajzkia mà nó chạy được. Vì mình ko muốn cho cái scrip kia vào trong code php. Thanks.

thg 11 16, 2020 1:44 SA

đừng echo code html/js vậy bạn ơi

nên dùng thế này thì tốt hơn

<?php if(condition) { ?>
<-- code html/js --->
<?php } ?>

nếu trong đoạn html/js có cần code php thì bạn lại thêm <?php ?> vào là được

viết thế sẽ dễ đọc hơn dùng echo này đấy

2 CÂU TRẢ LỜI


Đã trả lời thg 11 15, 2020 8:59 SA
Đã được chấp nhận
+1

Bạn tìm hiểu thêm từ khóa jquery event dynamic element xem sao nhé, trường hợp của bạn thử sửa như sau xem có giải quyết được bài toán của bạn không 🤔

<script type="text/javascript"> 
     $(document).on('click', '#fTangDiem', function() {
			$("#btnTangDiem", this)
			  .html("Đang xử lý...")
			  .attr("disabled", "disabled");
			return true;
		});
</script>
Chia sẻ
Avatar TinhTN @tinhtn89
thg 11 16, 2020 3:22 SA

Chính xác vấn đề của mình, " jquery event dynamic element ". Thanks

Đã trả lời thg 11 16, 2020 2:46 SA
0

php là ngôn ngữ server-side, nghĩa là code sẽ được biên dịch hay gì đó trên server và gửi html/js vế browser để hiển thị

khi bạn để code kia vào php, lúc web hiển thị, nó có đầy đủ cả html và js để chạy nên ok

nhưng khi đẩy vào ajax, đoạn html/js sẽ được thêm vào sau khi đã load trang nên sẽ không nhận đoạn code đó

giống như bạn vào lớp sau khi đã điểm danh thì thầy sẽ bỏ qua bạn và cho là bạn nghỉ buổi học đó ấy

hướng xử lý thì bạn viết cả đoạn html/js cả ra 1 file riêng, khi ajax trả về kết quả thì bạn gọi tới file đó để hiển thị nên trên file hiện tại

code cụ thể thì hiện tại không nhớ lắm

Chia sẻ
Avatar TinhTN @tinhtn89
thg 11 16, 2020 3:24 SA

thank

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí