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

在模式窗口中将javascript传递给php,php,javascript,variables,Php,Javascript,Variables,我试图在一个模式窗口中向php传递一个javascript变量,所有这些都在同一个页面上,即edit.php。(我将在后面找出如何使用单独的页面进行此操作)。同时,此javascript代码将变量传递给模式: <script type="application/javascript"> $(document).on("click", ".open-EditRow", function () { var myGroupId = $(this).data('id'); $

我试图在一个模式窗口中向php传递一个javascript变量,所有这些都在同一个页面上,即edit.php。(我将在后面找出如何使用单独的页面进行此操作)。同时,此javascript代码将变量传递给模式:

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

$(文档)。在(“单击”,“打开编辑行”,函数(){
var myGroupId=$(this.data('id');
$(“.modal body#groupId”).val(myGroupId);
});
在模态窗口中,以下是我一直使用的代码:

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

在加载页面之前执行PHP

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


$(文档)。在(“单击”,“打开编辑行”,函数(){
var myGroupId=$(this.data('id');
$(“.modal body#groupId”).val(myGroupId);
//ajax调用
var url=“/path/to/script.php?id=“+myGroupId;
$.get(url、函数(数据){
//对结果做点什么
});
});
您还可以在收到响应后打开模式,如果出现错误,请不要打开它并显示错误消息。但这取决于您的用例

更新

您的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。

您无法通过PHP完成此操作。。。PHP在生成页面之前(以及在执行JS之前…)在服务器端执行。您需要在包含更新语句的请求外部页面上通过JS发送GroupID变量。感谢您提供示例。测试。我知道我需要把它放在另一个文件的另一个文件夹中。请提供一个script.php页面的示例,您可以通过添加实际的代码示例来改进您的答案。