【问题标题】:pass variable to modal via POST通过 POST 将变量传递给模态
【发布时间】:2017-08-16 13:53:36
【问题描述】:

我正在尝试将变量发送到模态框,但我收到 注意:未定义变量:ordID

我搜索了许多其他请求,但没有一个能解决我的问题。

我的代码: 带有 a 的表格以显示将包含该行的所有信息的模式。

<table id="myTable" class="table table-striped table-bordered table-hover" cellspacing="0" width="100%">
       <thead>
           <tr>
           <th>ID Ordem</th>
           <th>Instalação</th>
           <th>Denominação</th>
           <th>Estado</th>
           <th>Tipo de Manut</th>
           <th>Ver</th>
           </tr>
      </thead>
      <tbody>

     <?php

         require_once 'edp/configdbedp.php';

              $sql="SELECT * FROM ordens";
              //echo $sql;
              $myData=mysqli_query($GLOBALS['con'],$sql);

     while($registos=mysqli_fetch_array($myData)){
       $ordem = $registos['ordem'];
     echo '<tr>';
     echo '<td>' . $registos['ordem'] . '</td>';
     echo '<td>' . $registos['locinstsap'] . '</td>';
     echo '<td>' . $registos['denominacao'] . '</td>';
     echo '<td>' . $registos['pk_idestado'] . '</td>';
     echo '<td>' . $registos['pk_sigla'] . '</td>';
     echo '<td align="center"><a id="getUser" class="modalLink" href="#myModal" data-toggle="modal" data-target="#myModal" data-id="<?php echo $ordem; ?>"><span class="glyphicon glyphicon-edit"></span> Ver</a></td>';
     echo "</tr>";
     }

     //mysqli_close($GLOBALS['con']);
      ?>
      </tbody>
  </table>

我要通过 POST 发送的脚本:

    <script>
    $('.modalLink').click(function(){
        var ordem=$(this).data('id');

        $.ajax({
                type:'POST',
                url:'/edp/php/adm/modalordens.php',
                data:'ordID='+ordem,
                success:function(data){
                  $(".modal-content").html(data);
                }
        });
});
</script>

我的文件 modalordens.php

<? $ordID = $_POST['ordID'];?>

<div class="modal-header">
    <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
    <h4 class="modal-title" id="fam_id">Ordem <?php echo $ordID;?></h4>
</div>
<div class="modal-body">
    <form id="form1" method="post">
        <b>DetailsOrdem <?php echo $ordID;?></b>
        <hr></hr>
    </form>
</div>
<div class="modal-footer">
    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>

我无法打印 $ordID,我不知道为什么

【问题讨论】:

  • 有时我不得不将 .data('id') 更改为 .attr('data-id') 以获取数据 ID ...尝试并告诉我是否有效
  • 我认为您的数据属性不应该像那样传递。而不是data:'ordID='ordem, 尝试data: {ordID : ordem},
  • 但是错误就在这里...data-id=""...改成data-id="'.$ordem.'"
  • 除了在你的 while 循环中之外,不会修复任何东西,你有 &lt;a id="getUser" 这在使用 javascript 时不好。 ID 是唯一的。如果您尝试通过引用该 id 对该元素执行任何操作,您会发现它仅适用于具有该 id 的第一个链接。
  • @Roy 我这样做了,但我遇到了同样的错误

标签: javascript php html post bootstrap-modal


【解决方案1】:

首先您需要将 ajax 数据参数作为对象传递:

<script>
    $('.modalLink').click(function(){
        var ordem=$(this).data('id');

        $.ajax({
                type:'POST',
                url:'/edp/php/adm/modalordens.php',
                data: { ordID : ordem },
                success:function(data){
                  $(".modal-content").html(data);
                }
            });
    });

</script>

并在这一行编辑php开始标签

<?php $ordID = $_POST['ordID'];?>

【讨论】:

  • 我已经尝试过了,错误仍然存​​在。在 $ordID = $_POST['ordID'];?> 我什么都没有。
  • 编辑这一行的开始 php 标签:
  • @SimãoAbreu 或者,您可以在服务器中启用短标签。
  • 是的,但不鼓励。不是“最佳实践”
【解决方案2】:

你的 ajax 帖子是错误的,应该是这样的

  $.ajax({
                type:'POST',
                url:'/edp/php/adm/modalordens.php',
                data: {ordID : ordem},
                success:function(data){
                  $(".modal-content").html(data);
                }
        });

【讨论】:

  • 你可以尝试使用 这会起作用
猜你喜欢
  • 2017-07-18
  • 2015-06-23
  • 2021-03-02
  • 2023-03-18
  • 2017-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多