繁体   English   中英

在模式窗口中将JavaScript传递给php

[英]Pass javascript to php in modal window

我正在尝试在模态窗口中将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语句正常工作?

请举个例子。 先感谢您。

在页面加载之前执行PHP。

您可以在触发JS时通过Ajax通过调用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作为参数。 尝试这样的事情:

<?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";
   }
?>

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM