отправка пользователю mesage путем передачи их идентификатора в модальный блок

Я пытаюсь создать форму сообщения в bootstrap modal, передав имя пользователя / id пользователя в модальный для идентификации.

здесь приведен код html / php, который составил список зарегистрированных пользователей.

<div class="col-lg-4 col-md-4 col-sm-4 mb"> <div class="content" style="margin-bottom:5px;"> <ul class=" extended inbox"> <div class="notify-arrow notify-arrow-green"></div> <li> <p class="green">People you can follow</p> </li> <?php //Show all users foreach ($users as $row) { ?> <li style="padding:3px; margin-bottom:3px; width:100%; background:#CF9;"> <a href="index.html#"> <span class="photo" style="float:left; padding:4px;"><img alt="avatar" src="uploads/<?php echo $row['pix']; ?>" width="50" height="50"></span> <span class="subject" style="float:left;"> <span class="from"> <?php echo '<a href="#">'.$row['user_lastname']. '&nbsp;'.$row['user_firstname'].'</a>'; ?> <a class="" data-toggle="modal" data-target="#profile_pic_modal"><span class="glyphicon glyphicon-comment"></span></a> </span><br> <span class="time"> <?php echo (($row['receiver'] === $row['user_id'] && $row['sender'] === $user_id) ? '<button class="btn follow following " rel="'.$row['user_id'].'">Following</button>' :' <button class="btn follow" rel="'.$row['user_id'].'"> <i class="fa fa-user-plus alert-info"></i> Follow </button>'); ?> </span> </span> </a> </li><br> <?php } ?> </ul> </div> 

Когда пользователь нажимает на значок сообщения другого пользователя, он / она должен иметь возможность отправлять сообщения. Может кто-нибудь, пожалуйста, покажите мне, как это сделать, используя php / mysqli и ajax

Сначала добавьте тег data-(anyName) как data-(anyName) ниже.

 <?php $ID = 'The persons Username'; ?> <a href='#' class='btn btn-warning btn-xs open-AddBookDialog' data-id='$ID' data-toggle='modal'>My Modal</a> 

Затем поместите тег ввода внутри вашего модального тела с идентификатором примера (MyID)

 <input type="text" id="MyID"> 

Затем, используя приведенный ниже код (jquery), это передаст значение идентификатора данных в этот тег ввода для модального шоу.

 $(document).on("click", ".open-AddBookDialog", function () { var myId = $(this).data('id'); $(".modal-body #bMyID").val(myId); $('#myModal').modal('show'); }); 

Информация, подобная имени пользователя (логин?) И идентификатору зарегистрированного пользователя, должна быть удалена сеансом , в отличие от вас есть веские причины не делать этого. Когда пользователь входит в систему, вы уже загрузите кучу данных, чтобы быть уверенным, что он действителен, поэтому практический способ не всегда получать все данные от пользователя, который в настоящее время использует вашу систему, всегда хорош использовать SESSIONs для обработки этого (представьте тонну пользователей, использующих вашу систему, и вам нужно будет извлечь каждый из них для каждого щелчка и подпрограммы внутри системы).

Практически, просто откройте свой модальный и подтвердите свою рутину, используя начальный сеанс, с информацией о пользователе.

Чтобы уточнить данные пользователей OTHERS (перечисленных в списке, которые текущий пользователь нажмет, чтобы отправить сообщение), вы можете использовать методы:

ВАШ HTML:

  <a href="#" data-userid='<?= $row['user_id']; ?>'> <span class="photo" style="float:left; padding:4px;"><img alt="avatar" src="uploads/<?php echo $row['pix']; ?>" width="50" height="50"></span> <span class="subject" style="float:left;"> <span class="from"> <?php echo '<a href="#">'.$row['user_lastname']. '&nbsp;'.$row['user_firstname'].'</a>'; ?> <a class="" data-toggle="modal" data-target="#profile_pic_modal"><span class="glyphicon glyphicon-comment"></span></a> </span><br> <span class="time"> <?php echo (($row['receiver'] === $row['user_id'] && $row['sender'] === $user_id) ? '<button class="btn follow following " rel="'.$row['user_id'].'">Following</button>' :' <button class="btn follow" rel="'.$row['user_id'].'"> <i class="fa fa-user-plus alert-info"></i> Follow </button>'); ?> </span> </span> </a> 

#Modal (Предполагая, что вы используете v4)

 <div class="modal hide fade" id="user-message"> <div class="modal-header"> <button class="close" data-dismiss="modal">×</button> <h3 class="hdrtitle">Hey <?= $_SESSION['login']; ?>, Send message to <span></span></h3> </div> <div class="modal-body"> <label for='msg'>Message:</label> <textarea id='msg' rows="4" cols="50" name='msg'></textarea> <button id='send-msg'>Send Msg</button> </div> </div> 

и затем показывая его с:

 $('a').on('click', function(){ //retrieve all other user data $.get( "yourcode.php?userid=" + $(this).data('userid'), function( data ) { $('.modal h3 span').html(data.username); //FILL YOUR MODAL AS YOU WISH $('.modal').modal('toggle'); }); }); 

Но лучший способ – щелкнуть и смонтировать модальный в частичном представлении, в результате чего HTML уже смонтирован со всей информацией, которую вы хотите просто вызвать модальную подпрограмму, избегая html-структуры, которая пользователю в действительности не нужна при первом доступе к странице.

 $('a').on('click', function(){ //retrieve all other user data $.get( "partialmodal-sendmsg.php?userid=" + $(this).data('userid'), function( data ) { $('body').append(data); //FILL YOUR MODAL AS YOU WISH $('.modal').modal('toggle'); }); }); 

Некоторые из них должны читать:

Когда следует использовать переменные сеанса вместо файлов cookie?

http://cse.unl.edu/~riedesel/pub/cse413/Project%202/SESSION.pdf