Как передать значение в модальное окно для редактирования в нем данных?

Добрый день. Подскажите: есть форма с данными из БД, по клику мышкой на строке хочу передать ИД строки в модальное окно и там его обрабатывать. Передаю аяксом. И как мне кажется, все верно. Укажите на ошибку, что делаю не так, пожалуйста.
Отсюда надо передать:
<div class="layout-positioner">
    <table id="tbl_user_role" border="1">
        <thead>
            <tr>
                <th>№</th>
                <th>ФИО пользователя</th>
                <th>E-mail</th>
                <th>Активен (Да/Нет)</th>
                <th colspan=4>Опции</th>
            </tr>
        </thead>
        <tbody>
               <?php if(!empty($data)){?>
               <?php foreach($data as $d){
                  $id=$d['user_id'];
                ?>
            <tr id="<?php echo $id; ?>" class="edit_modal">
                <td><?php echo $d['user_id'];?></td>
                <td><?php echo $d['full_name'];?></td>
                <td><?php echo $d['email'];?></td>
                <td><input type="checkbox" <?php if ($d['is_active'] == '1') {echo 'checked="checked"';}?> ></td>
                <td>
                    <a title="Редактировать выделенную запись" href="role_user.php?edit_id=<?php echo $d['user_role_id'];?>"><span class="glyphicon glyphicon-edit"></span></a>
                </td>
                <td>
                    <a title="Копировать выделенную запись" href="role_user.php?copy_id=<?php echo $d['user_role_id'];?>"><span class="glyphicon glyphicon-book"></span></a><br>
                </td>
                <td>
                    <a title="Удалить выделенную запись" href="role_user.php?delete_id=<?php echo $d['user_role_id'];?>"><span class="glyphicon glyphicon-remove"></span></a><br>
                </td>
            </tr>
            <?php }?>
            <?php }else{?>
            <tr><td colspan=4>В базе нет записей</td></tr>
            <?php }?>
        </tbody>
    </table>
</div>


Потом JS: передаю DataString и думаю, что получу его в $_POST в modal_window.php. Не получаю. А если в span в том же modal_window.php передаю значение $('#row_id').val(id) - оно там есть. Что в JS нет так? Или я его (dataString) ожидаю не там?
$(document).ready(function() {
    $('.edit_modal').click( function(event){
        event.preventDefault();
        var id = $(this).attr("id");
        var dataString = "user_id="+ id;
        $.ajax({
            type: "POST",
            url: 'modal_window.php',
            data: dataString,
            cache: false,
            success: function()
                {
                    $('#overlay').fadeIn(400,
                        function(){
                            $('#modal_form') 
                                .css('display', 'block')
                                .animate({opacity: 1, top: '50%'}, 200);
                    });
                $('#row_id').val(id);
                }
        });
    });
 
    $('#modal_close, #overlay').click( function(){ 
        $('#modal_form')
            .animate({opacity: 0, top: '45%'}, 200,
                function(){
                    $(this).css('display', 'none');
                    $('#overlay').fadeOut(400);
                }
            );
    });
});

Модальное окно - modal_window.php:

<?php
 require("constants.php");
$con = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME)
        or die("Ошибка " . mysqli_error($con));
if($_POST['user_id'])
{
$user_id=$_POST['user_id'];
}
?>
<div id="modal_form">
    <span id="modal_close" class="glyphicon glyphicon-remove"></span>
        <form action="" method="post">
            <input type="input" id="row_id" value="100500" name="span_value">
            <table id="tbl_user_role" border="1">
                <thead>
                    <tr>
                        <th>Пользователь</th>
                        <th>Роль</th>
                    </tr>
                </thead>
                <?php 
                    $new_query = "select * from tbl_user_role where user_id=$user_id;";
                    $new_result=mysqli_query($con,$new_query) or die("Ошибка " . mysqli_error($con));
                    while ($row = mysqli_fetch_array($new_result)) :
                    $id = $row['user_role_id'];
                    $user_id = $row['user_id'];
                    $role_id = $row['role_id'];
                ?>
                <tbody>
                    <tr>
                        <td><?php echo $user_id; ?></td>
                        <td><?php echo $role_id; ?></td>
                    </tr>
                </tbody>
                <?php endwhile; ?>
                <tr colspan=2></tr>
            </table>
        </form>
</div>
<div id="overlay"></div>
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы