除了向url添加参数外,还是将数据传递给jquery模式?

时间:2014-01-07 09:08:09

标签: ajax jquery twitter-bootstrap twitter-bootstrap-3

单击#dtDelete按钮我在bootstrap 3中打开ajax模式。我还传递一个参数,选中它,并在php页面上使用$ _GET来检索它。

由于所选的值可能会或可能不会非常大,我想我应该避免使用$ _GET这样的方式传递值。

我怎样才能传递除此方法之外的值?由于打开模态的性质(装载它然后显示它)我坚持任何其他方式。

$('#dtDelete').on('click', function () {
    //open the modal with selected parameter attached
    $('#modal-ajax').load('/modals/m_keystroke_delete.php?selected='+selected);
    $('#modal-ajax').modal('show');                         
});

1 个答案:

答案 0 :(得分:1)

将数据对象作为第二个参数传递给load,以便发出POST请求。

$('#dtDelete').on('click', function () {

    var data = { 'propertyA': 'extremely large data' };

    //open the modal with selected parameter attached
    $('#modal-ajax').load(
      '/modals/m_keystroke_delete.php?selected=' + selected, // url
      data,                                                  // data
      function(responseText, textStatus, XMLHttpRequest) { } // complete callback
    );

    $('#modal-ajax').modal('show');                         
});

您甚至可以通过POST请求传递“已选择”参数,并使用$_POST甚至$_REQUEST来检索数据。另请注意,一旦请求完成,模式现在会显示。

$('#dtDelete').on('click', function () {

    var data = {
      'selected': selected
      'largeData': '...'
    };

    $('#modal-ajax').load(
      '/modals/m_keystroke_delete.php',
      data,
      function() {

        // Invoke the delete-function
        deleteComp();

        // Show the modal
        $(this).modal('show');
      }
    );
});