Xử lý dữ liệu trong ajax
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.
2 ANSWERS
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>
Chính xác vấn đề của mình, " jquery event dynamic element ". Thanks
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
thank
đừng echo code html/js vậy bạn ơi
nên dùng thế này thì tốt hơn
nếu trong đoạn html/js có cần code php thì bạn lại thêm
<?php ?>
vào là đượcviết thế sẽ dễ đọc hơn dùng echo này đấy