PHP: как переносить переменную в модальном URL-адресе

Итак, у меня есть кнопка, дающая прямую ссылку на модальную на той же странице.

это кнопка и URL-адрес

<a data-toggle="modal" href="main_user.php?user_id=<?php echo $user['user_id']; ?>#myModal" class="btn btn-warning"> 

(Я пытаюсь повторить $user_id до #modal ), правильно?

и после того, как я нажму кнопку, появится модальная мода. Это модальная форма.

 <form class="form-login" action="action/doEditUserStatus.php" method="post"> <div class="login-wrap"> <div class="changestatus"> <p>Banning or Activing User Status</p></div> <div class="btn-group" data-toggle="buttons"> <label class="btn btn-success active"> <input type="radio" name="options" value="1" autocomplete="off" checked> Actived </label> <label class="btn btn-primary"> <input type="radio" name="options" value="2" autocomplete="off"> Banned </label> </div> </div> <div class="modal-footer"> <button data-dismiss="modal" class="btn btn-default" type="button">Cancel</button> <button class="btn btn-theme" name="modalSubmit" type="submit">Submit</button> </div> </form> 

И затем я пытаюсь представить модальную форму, но действие не может прочитать $user_id который я поставил перед #modal .

UPDATE: Код таблицы:

Итак, это моя таблица:

 <tr class="success"> <th class="numeric">ID</th> <th class="numeric">E-mail</th> <th class="numeric">Name</th> <th class="numeric">Phone</th> <th class="numeric">Picture</th> <th class="numeric">Status</th> <th colspan="2" class="numeric">Action</th> </tr> <tr> <td class="numeric"><?php echo $user['user_id']; ?></td> <td class="numeric"><?php echo $user['email']; ?></td> <td class="numeric"><?php echo $user['name']; ?></td> <td class="numeric"><?php echo $user['phone']; ?></td> <td class="numeric"><?php echo $user['picture']; ?></td> <td class="numeric"> <a data-toggle="modal" href="main_user.php?user_id=<?php echo $user['user_id']; ?>#myModal" class="btn btn-warning"> <span class="glyphicon glyphicon-edit" aria-hidden="true"></span>&nbsp;Change Status </a> </td> </tr> 

Основная проблема заключается в следующем: когда я нажимаю кнопку, появляется модальная $user_id но она не может получить $user_id с этой кнопки?

Related of "PHP: как переносить переменную в модальном URL-адресе"

Поместите скрытое поле ввода с user_id в вашу форму:

 <input type="hidden" name="user_id" value="<?php echo $user['user_id']; ?>"> 

EDIT: Если вы имеете в виду Bootstrap, попробуйте следующее:

Ссылка / кнопка:

 <a data-toggle="modal" data-userid="<?php echo $user['user_id']; ?>" href="main_user.php#myModal" class="btn btn-warning"> 

Скрытое поле формы:

 <input type="hidden" name="user_id" value=""> 

Javascript:

 $('#myModal').on('show.bs.modal', function(e) { var userid = $(e.relatedTarget).data('userid'); $(e.currentTarget).find('input[name="user_id"]').val(userid); }); 

См. Также http://getbootstrap.com/javascript/#modals-related-target и Передача данных в загрузочный модальный

Вы должны были упомянуть Bootstrap в своем вопросе. PHP не является соответствующим тегом.

Это будет работать, если ваша ссылка будет перенаправлена:

Вам нужно будет добавить скрытый ввод в вашу форму с переменной $_GET['user_id'] (которая содержит значение параметра в URL $_GET['user_id'] ):

 <input type="hidden" name="user_id" value="<?php echo (int)$_GET['user_id'] ?>" /> 

но, если я прав, эта ссылка является дескриптором бутстрапа twitter, который предотвратит его поведение по умолчанию. Таким образом, фактического перенаправления нет. Что вы можете сделать, это использовать атрибут пользовательских данных в ссылке:

 <a data-toggle="modal" data-userid="<?php echo $user['user_id']; ?>" href="#myModal" class="btn btn-warning"> 

И обработайте это с помощью javascript, чтобы добавить скрытое поле ввода в форму:

 $(document).ready(function(){ $('[data-userid]').click(function(){ var userid = $(this).data('userid'); var form = $('form.form-login'); var input = $('<input type="hidden" name="user_id" value="'+userid+'" />'); if (form.find('input[name="user_id"]').length) { form.find('input[name="user_id"]').val(userid); } else { form.prepend(input); } }); });