如何将PHP变量发送到模态引导程序并将其作为PHP变量接收?

时间:2017-09-05 00:47:00

标签: php jquery mysql ajax bootstrap-modal

我需要帮助。

我有一个带有引导按钮的页面来触发模态。为了减少污染的代码,我导入页面模式“require_once('edit_user.php')”。如何将PHP变量“$ id”发送到“edit_usuario.php”页面?在这个页面中,我需要检索变量$ id(PHP)以在数据库中执行查询和检查。我正在填写记录表。我通过“foreach”显示记录。然后每行都有自己的id。以下是我的代码。

_____________________________ USUARIOS.PHP _________________________________

<!-- IMPORT THE MODAL FROM OTHER PAGE -->
<?php require_once('editar_usuario.php'); ?>

<!-- Here is the PHP variable that I need to send to the modal on the other page. -->
<?php $id_user = $carregaUsuarios["id"]; ?>    

<table id="table_id2" class="table table-striped table-bordered table-hover" cellspacing="0" width="100%">
            <thead>
                <tr>
                    <th width="110px;"></th>
                    <th>ID</th>
                    <th>Nome</th>
                    <th>Login</th>
                    <th>Senha</th>
                    <th>Data</th>
                    <th>Status</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ( $carregaUsuarios as $carregaUsuarios ) { ?>
                <tr>
                    <td width="110px;" align="center">
                        <!-- BOTÃO EDITAR -->
                        <a class="btn btn-primary btn-sm" data-toggle="modal" data-target="#editarUsuario" title="Editar"><i class="fa fa-pencil text-white"></i></a>

                        <!-- BOTÃO VISUALIZAR -->
                        <a class="btn btn-success btn-sm" data-toggle="modal" data-target="#visualizarUsuario" title="Visualizar"><i class="fa fa-search text-white"></i></a>

                        <!-- BOTÃO EXCLUIR -->
                        <a class="btn btn-danger btn-sm" data-toggle="modal" data-target="#excluirUsuario" title="Alterar Status"><i class="fa fa-refresh text-white"></i></a>
                    </td>
                    <td><?php echo $carregaUsuarios["id"]; ?></td>
                    <td><?php echo $carregaUsuarios["nome"]; ?></td>
                    <td><?php echo $carregaUsuarios["login"]; ?></td>
                    <td><?php echo $carregaUsuarios["senha"]; ?></td>
                    <td>
                        <?php
                            $carregaUsuarios["data"] = date("d/m/Y H:i:s", strtotime($carregaUsuarios["data"]));
                            echo $carregaUsuarios["data"]; 
                        ?>              
                    </td>
                    <td>
                        <?php 
                            if($carregaUsuarios["status"] == 0) {
                                echo "<span class='badge badge-danger'>INATIVO</span>"; 
                            }else{
                                echo "<span class='badge badge-success'>ATIVO</span>"; 
                            }
                        ?>
                    </td>
                </tr>
                <?php } ?>
            </tbody>
        </table>

__________________________ EDITAR_USUARIOS.PHP ______________________________

<?php 
//I JUST NEED GET THE VARIABLE PHP $ID FROM PAST PAGE TO USE HERE AND MAKE SOME SELECTS IN DATA BASE
$id = $carregaUsuarios["id"];
?>

<div class="modal fade" id="editarUsuario" tabindex="-1" role="dialog" aria-labelledby="editarUsuarioLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="editarUsuarioLabel">Editar Usuário</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <form action="#" method="POST">
          <div class="form-group">
            <label for="recipient-name" class="form-control-label">Nome:</label>
            <input type="text" class="form-control something" name="nome" id="nome">
          </div>

          <div class="form-group">
            <label for="recipient-name" class="form-control-label">Login:</label>
            <input type="text" class="form-control" name="login" required>
          </div>

          <div class="form-group">
            <label for="recipient-name" class="form-control-label">Senha:</label>
            <input type="password" class="form-control" name="senha" required>
          </div>

          <div class="form-group">
            <label for="recipient-name" class="form-control-label">Nível de Permissão:</label>
            <select name="nivel_permissao" class="form-control" aria-describedby="nivel_permissao" required>
                <option></option>
                <option value="1">ADMINISTRADOR</option>
                <option value="2">INTERMEDIÁRIO</option>
                <option value="3">BÁSICO</option>
            </select>
            <small id="nivel_permissao" class="form-text text-muted">
              Administrador - Cadastro, Edição, Exclusão, Visualização e Backup.
              <br />
              Intermediário - Cadastro, Edição, Visualização.
              <br />
              Básico - Visualização.
            </small>
          </div>

          <div class="form-group">
            <label for="recipient-name" class="form-control-label">Status:</label>
            <select name="status" class="form-control" required>
                <option value="1">ATIVO</option>
                <option value="0">INATIVO</option>
            </select>
          </div>

          <div class="modal-footer">
            <button type="button" class="btn btn-secondary" data-dismiss="modal">Fechar</button>
            <button type="submit" class="btn btn-primary">Confirmar</button>
          </div>
        </form>
      </div>
    </div>
  </div>
</div>

谢谢你!我相信你会帮助我。

2 个答案:

答案 0 :(得分:0)

您希望将用户ID传递给bootstrap模式 所以这发生在客户端,当PHP很久以前就完成了它的执行。

在你的PHP循环中,诀窍是将用户id存储在打开模态的链接的data属性中。

然后另一个脚本将检索该值以将其传递给模态的隐藏input

请参阅下面的代码中的评论,了解添加的内容。

<强> USUARIOS.PHP:

<?php
if(isset($_POST['userID'])){
  // if an id was posted, execute this script.

  // You can save to database here.
  // ...
}

?>

<!-- IMPORT THE MODAL FROM OTHER PAGE -->
<?php require_once('editar_usuario.php'); ?>

<!-- Here is the PHP variable that I need to send to the modal on the other page. -->
<?php $id_user = $carregaUsuarios["id"]; ?>    

<table id="table_id2" class="table table-striped table-bordered table-hover" cellspacing="0" width="100%">
    <thead>
        <tr>
            <th width="110px;"></th>
            <th>ID</th>
            <th>Nome</th>
            <th>Login</th>
            <th>Senha</th>
            <th>Data</th>
            <th>Status</th>
        </tr>
    </thead>
    <tbody>
        <?php foreach ( $carregaUsuarios as $carregaUsuarios ) { ?>
        <tr>
            <td width="110px;" align="center">
                <!-- BOTÃO EDITAR -->

                <!-- data-id was added in the line below -->
                <a class="btn btn-primary btn-sm" data-toggle="modal" data-target="#editarUsuario" data-id="<?php echo $id_user; ?>" title="Editar"><i class="fa fa-pencil text-white"></i></a>

                <!-- BOTÃO VISUALIZAR -->
                <a class="btn btn-success btn-sm" data-toggle="modal" data-target="#visualizarUsuario" title="Visualizar"><i class="fa fa-search text-white"></i></a>

                <!-- BOTÃO EXCLUIR -->
                <a class="btn btn-danger btn-sm" data-toggle="modal" data-target="#excluirUsuario" title="Alterar Status"><i class="fa fa-refresh text-white"></i></a>
            </td>
            <td><?php echo $carregaUsuarios["id"]; ?></td>
            <td><?php echo $carregaUsuarios["nome"]; ?></td>
            <td><?php echo $carregaUsuarios["login"]; ?></td>
            <td><?php echo $carregaUsuarios["senha"]; ?></td>
            <td>
                <?php
                    $carregaUsuarios["data"] = date("d/m/Y H:i:s", strtotime($carregaUsuarios["data"]));
                    echo $carregaUsuarios["data"]; 
                ?>              
            </td>
            <td>
                <?php 
                    if($carregaUsuarios["status"] == 0) {
                        echo "<span class='badge badge-danger'>INATIVO</span>"; 
                    }else{
                        echo "<span class='badge badge-success'>ATIVO</span>"; 
                    }
                ?>
            </td>
        </tr>
        <?php } ?>
    </tbody>
</table>


<!-- This whole script was added -->
<script>
$(document).ready(function(){
  $("[data-target='#editarUsuario']").on("click", function(){
    var userID = $(this).data("id");
    $("#userID").val(userID);
  });
});
</script>

<强> EDITAR_USUARIOS.PHP:

<?php 
//I JUST NEED GET THE VARIABLE PHP $ID FROM PAST PAGE TO USE HERE AND MAKE SOME SELECTS IN DATA BASE
//$id = $carregaUsuarios["id"];  // No use for this here.
?>

<div class="modal fade" id="editarUsuario" tabindex="-1" role="dialog" aria-labelledby="editarUsuarioLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="editarUsuarioLabel">Editar Usuário</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <form action="#" method="POST">
          <input type="hidden" id="userID" name="userID">    <!-- This hidden input was added-->
          <div class="form-group">
            <label for="recipient-name" class="form-control-label">Nome:</label>
            <input type="text" class="form-control something" name="nome" id="nome">
          </div>

          <div class="form-group">
            <label for="recipient-name" class="form-control-label">Login:</label>
            <input type="text" class="form-control" name="login" required>
          </div>

          <div class="form-group">
            <label for="recipient-name" class="form-control-label">Senha:</label>
            <input type="password" class="form-control" name="senha" required>
          </div>

          <div class="form-group">
            <label for="recipient-name" class="form-control-label">Nível de Permissão:</label>
            <select name="nivel_permissao" class="form-control" aria-describedby="nivel_permissao" required>
                <option></option>
                <option value="1">ADMINISTRADOR</option>
                <option value="2">INTERMEDIÁRIO</option>
                <option value="3">BÁSICO</option>
            </select>
            <small id="nivel_permissao" class="form-text text-muted">
              Administrador - Cadastro, Edição, Exclusão, Visualização e Backup.
              <br />
              Intermediário - Cadastro, Edição, Visualização.
              <br />
              Básico - Visualização.
            </small>
          </div>

          <div class="form-group">
            <label for="recipient-name" class="form-control-label">Status:</label>
            <select name="status" class="form-control" required>
                <option value="1">ATIVO</option>
                <option value="0">INATIVO</option>
            </select>
          </div>

          <div class="modal-footer">
            <button type="button" class="btn btn-secondary" data-dismiss="modal">Fechar</button>
            <button type="submit" class="btn btn-primary">Confirmar</button>
          </div>
        </form>
      </div>
    </div>
  </div>
</div>

因此,您将通过$_POST['userID']

在表单提交时在PHP端收到此ID

我假设您加载了jQuery库...

答案 1 :(得分:0)

USUARIOS.PHP中的

<a>更改为

<a href ="#" class="btn btn-primary btn-sm open_modal" id="<?php echo $carregaUsuarios["id"]; ?>"><i class="fa fa-pencil text-white"></i></a>

并为模态地点制作div

<div id="ModalEditar" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">

添加一些Javascipt

$(document).ready(function () {$(".open_modal").click(function(e) {
  var m = $(this).attr("id");
   $.ajax({
         url: "EDITAR_USUARIOS.PHP",
         type: "GET",
         data : {modal_id: m,},
         success: function (ajaxData){
           $("#ModalEditar").html(ajaxData);
           $("#ModalEditar").modal('show',{backdrop: 'true'});
         }
       });
    });
  });

在您的EDITAR_USUARIOS.PHP中添加$id=$_GET['modal_id'];