2010-11-09 81 views
1

我有以下的链接,打开一个jQuery模态窗口:通行证ID变量成javascript函数

<div id='confirm-dialog'><a href='#' class='confirm'><img src='1.png' /></a></div> 

和处理以下JS代码是:

jQuery(function ($) { 
    $('#confirm-dialog input.confirm, #confirm-dialog a.confirm').click(function (e) { 
     e.preventDefault(); 

     confirm("Are you sure you want to delete item id='IDNUMBER'.", function() { 
      window.location.href = 'path to php process script'; 
     }); 
    }); 
}); 

function confirm(message, callback) { 
    $('#confirm').modal({ 
     closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>", 
     position: ["30%",], 
     overlayId: 'confirm-overlay', 
     containerId: 'confirm-container', 
     onShow: function (dialog) { 
      var modal = this; 

      $('.message', dialog.data[0]).append(message); 

      // if the user clicks "yes" 
      $('.yes', dialog.data[0]).click(function() { 
       // call the callback 
       if ($.isFunction(callback)) { 
        callback.apply(); 
       } 
       // close the dialog 
       modal.close(); // or $.modal.close(); 
      }); 
     } 
    }); 
} 

我无法解决两个问题:

  1. 如何将ID变量(可能是其他变量)传递给javascript函数,以便whe n我在确认窗口中提交'是',php路径将包含如下内容:http://www.pathtophp.com?ID=12345

  2. 如何在弹出文本中显示ID变量(如下所示:... delete item id =“IDNUMBER” ...)

回答

2

你可以简单地在PHP生成网页的头部(包括其他的JS文件之前)添加

<script type="text/javascript"> 
//Assumes id is passed in the URL 
var id = <?php print $_GET['id'];?>; 
</script> 

然后变量“id”可用于页面上的所有JavaScript函数。

另外,如果有你想要应用此功能,您可以将ID添加到锚标记的rel属性页面上的多个链接:

<a href="javascript:void(0)" class="confirm" rel="<?php print $id;?>"> 

然后你就会修改jQuery的功能,以

jQuery(function ($) { 
    $('#confirm-dialog input.confirm, #confirm-dialog a.confirm').click(function (e) { 
     e.preventDefault(); 

     confirm("Are you sure you want to delete item id='"+ e.currentTarget.rel +"'.", function() { 
      window.location.href = 'http://www.pathtophp.com?ID=' + e.currentTarget.rel; 
     }); 
    }); 
}); 
+0

@丹尼尔 - 不确定你要去哪里第一部分必需品,但第二个实际上是我想要完成的。该行为可以发生在同一页面上的大约100个项目(例如100个ID)上。我已经过测试并可以确认您的建议。非常感谢您的帮助。 – JM4 2010-11-09 21:22:19

+0

在旁边注意 - 使用“javascript:void(0)”比简单地使用href =“#”有什么真正的好处吗? - 另外,你有没有关于'rel'路径的任何文档,以及它如何用于JS - 这似乎是非常有用的。 – JM4 2010-11-09 21:23:22

+0

@丹尼尔 - 也回头看看,有没有办法将'多个'变量传递给rel标签?例如 - 我需要传递ID用于URL目的,但我需要传递一个名称以及:“你确定要删除:John Doe吗?”然后有一个是去“http://www.deleteuser.com?ID=12345” – JM4 2010-11-09 21:29:23

0

1,你可以使用如下

var value= "<%=value from server side%>”

+0

@once你有价值的JavaScript这是价值在这里,你可以以任何方式显示。 – kobe 2010-11-09 20:38:51

+0

它不是jsp,它是php。 – alexy13 2010-11-09 20:38:59

+0

@alexy,你投了下来,这是一个基于语法的通用答案,它可以用于任何语言 – kobe 2010-11-09 20:40:52