使用单击function将php变量传递给模态窗口

我有一个启动模态窗口的单击function。 在模态窗口内部我加载modal_window.php。 点击function如下所示:

$('a#testmodal').click(function(e){  varid = ; $.get('modal_window.php?id=' + varid, function(data){ modal.open({content: data});}); e.preventDefault(); }); 

我用来触发它的链接看起来像这样:

 Test 

奇怪的是当我第一次点击链接时没有任何反应。 然而,当我第二次点击它时,一切都按预期工作。 原因似乎是我的代码的jquery片段在php变量$ id被设置之前第一次运行(jquery部分运行然后php部分运行)。 然后当我第二次点击链接时(点击function中的php变量$ id在此处设置)一切正常。

所以我的问题是有一种不同的方法将变量从我的链接传递给我不依赖于php的click函数。 像这样的东西:

 Test 

您的代码将无法在第一次运行,因为$_GET上没有任何数据,因此该函数将出现语法错误,并且链接将“正常”运行。 在第二次单击时,您将具有id参数,因此它将打开模态。

现在,我不太了解您的实现背后的逻辑,但如果您只想将值传递给Click处理程序,则可以使用数据属性:

HTML

 Test 

使用Javascript

 $('#testmodal').click(function(e){ e.preventDefault(); $.get('modal_window.php?id=' + $(this).data('id'), function(data){ modal.open({content: data});}); }); 

这可行,但我假设您将有多个指向不同模态窗口的链接,因此您可能希望为链接提供一个类,并将其用作单击处理程序中的选择器,如:

 $('.open-modal').click(function(e){ ... }); 

PHP在客户端发送数据之前运行(PHP由您的服务器运行)。 如果你检查来源,你将看不到任何

也就是说,请看这个问题: 如何在JavaScript中获取查询字符串值? 。