所以我试图让这个工作在这里是jquery + php。
当我尝试触发jquery中的点击时,它甚至没有" alert()"。
PHP(更新):
$MSG_Notification_sql = mysqli_query($Connection, "SELECT * FROM notifications WHERE user_id='".$bzInfo['id']."'");
while ($MSG_Notification_row = mysqli_fetch_array($MSG_Notification_sql)){
$MSG_Notification_rows[] = $MSG_Notification_row;
}
foreach ($MSG_Notification_rows as $MSG_Notification_row){
$bzWhen = date('d-m-Y H:m:i', strtotime($MSG_Notification_row['when']));
echo '<form method="POST">
<div class="notificationClick notification-messages info">
<div class="user-profile">
<img src="assets/img/profiles/d.jpg" alt="" data-src="assets/img/profiles/d.jpg" data-src-retina="assets/img/profiles/d2x.jpg" width="35" height="35">
</div>
<div class="message-wrapper">
<div class="heading"> '.$MSG_Notification_row['title'].'</div>
<div class="description"> '.$MSG_Notification_row['description'].' </div>
<div class="date pull-left"> '.$bzWhen.'</div>
</div>
<input name="notificationID" value="'.$MSG_Notification_row['id'].'" style="display: none" />
<div class="clearfix"></div>
</div>
</form>';
}
的Javascript(更新):
$(document).ready(function(){
$('.notificationClick').click(function(event){
alert('Ok');
// get the form data
// there are many ways to get this data using jQuery (you can use the class or id also)
var formData = $('#notificationClick').serialize();
// process the form
$.ajax({
type : 'POST', // define the type of HTTP verb we want to use (POST for our form)
url : '../../class/notifications/msgs_del.php', // the url where we want to POST
data : formData, // our data object
dataType : 'json' // what type of data do we expect back from the server
})
// using the done promise callback
.done(function(data) {
// log data to the console so we can see
console.log(data);
window.location = '/?page=messages&sub=inbox&bx=preview&id='+ data.notificationID +'';
});
event.preventDefault();
});
});
是的,有人可以帮帮我吗?我试图完成这一点,但没有:(
答案 0 :(得分:2)
首先,正如其他人所说,ids需要是单一的。所以使用你已经拥有的课程。现在在里面,您需要使用您单击的当前表单,而不是所有表单。
$('.notification-messages').click(function(event){ //<-- change to class
var formData = $(this).closest("form").serialize(); //change to this
...
如果要动态加载这些,则需要使用事件委派
$(document).on("click", '.notification-messages', function(event){
var formData = $(this).closest("form").serialize();
...
答案 1 :(得分:0)
您正在使用ID,您只能将点击绑定到1个ID,而不是多个ID。
您应该使用该类来绑定.click函数。
答案 2 :(得分:0)
您可以将时间戳与您的ID相关联以使其唯一(如果您愿意,可以用_
分隔)并将点击事件的选择器更改为$('[id*="notificationClick_"]')
另一方面,你可能想要使用一个类,而不是它的用途:
$(".notification-messages")