0

我试图在模态窗口中将一个javascript变量传递给php,所有这些都在同一页面上,即edit.php。(稍后我会弄清楚如何使用单独的页面来做到这一点)。同时,这段 javascript 代码可以将变量传递给模态:

 <script type="application/javascript">
 $(document).on("click", ".open-EditRow", function () {
   var myGroupId = $(this).data('id');
   $(".modal-body #groupId").val( myGroupId );
 });
 </script>

在模态窗口中,这是我一直在使用的代码:

 <div class="modal hide fade" id="myEditModal">
 <div class="modal-body">
 <form class="well-small" action="" method="POST" id="modalForm" name="modalForm">
   <?php ********* code *********** ?>
 </form>
 </div>
 </div>

表单内部是我的 php 代码,我在其中成功地从 javascript 检索 groupId,并且可以使用输入标签将其打印到屏幕上。这是代码:

 <?php
   $id = "<input type=\"text\" name=\"groupId\" id=\"groupId\" value=\"\" />";
   echo "Group Id: " . $id;
   $sql = "SELECT mygroup FROM mytable WHERE pk_tId = '" . $id . "'";
   $result = mysql_query($sql);
   if(mysql_data_seek($result)){
     $row = mysql_fetch_row($result);
   }
   else {
     echo "Cannot seek row: " . mysql_error() . "\n";
   }
 ?>

sql 语句在数据库中找不到 $id,因为 $id 被打印为输入标签。如何从输入标签中提取 groupId 以便我的 sql 语句可以工作?

请举例。先感谢您。

4

2 回答 2

0

PHP 在页面加载之前执行。

您可以通过 Ajax 执行此操作,当触发 JS 时,通过调用您的 PHP 脚本并将 传递id为参数:

<script type="application/javascript">
 $(document).on("click", ".open-EditRow", function () {
   var myGroupId = $(this).data('id');
   $(".modal-body #groupId").val( myGroupId );

   // ajax call
   var url = "/path/to/script.php?id=" + myGroupId;
   $.get(url, function(data){
     // do something with the result         
   });
 });
<script>

您也可以在收到响应后打开模式,如果出现错误,请不要打开它并显示错误消息。但这取决于您的用例。

更新

您的 PHP 脚本看起来基本上像您的代码,除了您id从请求中获取 as 参数。尝试这样的事情:

<?php
   $id = $_GET['id']

   $sql = "SELECT mygroup FROM mytable WHERE `pk_tId`='$id'";
   $result = mysql_query($sql);
   if($result) {
     if(mysql_num_rows($result) == 1) {
       $row = mysql_fetch_assoc($result);
       echo $row;
     }
     else {
       echo "Cannot seek row: " . mysql_error() . "\n";
     }
   }
   else {
     echo "Cannot seek row: " . mysql_error() . "\n";
   }
?>
于 2013-08-14T15:53:36.647 回答
0

我最终向模态 a href 添加了一个 onclick 函数,并创建了一个 cookie,一旦模态被打开,我就会抓取它。当我关闭模式时,我使用 javascript 来清除 cookie。

于 2015-08-18T14:59:48.893 回答