0

我对 jQuery 有一点问题 - 在 jquery ui 确认对话框中,我有 2 个输入:第一个 - 用精确的 value="" 隐藏第二个 - 输入文本 - 这就是问题所在。

当我单击“确定”时,脚本只向我发送第一个值,第二个是空的。但是当我写 value="123" 时,有两个正在发送。

HTML:

<input type="text" value="" class="MyIn" id="MyIn" name="MyIn" >
<input type="hidden" value="<?=$r['order_id'];?>" class="orderid" id="orderid" >

JavaScript:

  $("a.opener").click(function (e) {
        $("#dialog-message").dialog({

            buttons: {
                Ok: function () {
                    var sendNumber = $("input#MyIn").val();
                    var orderid = $("input#orderid").val();

                    var dataString = 'orderid=' + orderid + '&sendNumber=' + sendNumber;

                    $.ajax({
                        type: "POST",
                        url: "moduls/send.php",
                        data: dataString,
                        success: function () {
                            $("#dialog-message").dialog("close");
                        }
                    });
                    return false;

                }
            }
        });
    });
4

3 回答 3

1

它可能不会有太大的区别,但它可能是一个很好的做法,当通过 AJAX 发送数据时,包含一个 DATATYPE,如下所示:

$.ajax({
  type: "POST",
  url: "moduls/send.php",
  data: dataString,
  dataType: 'text',
  success: function () {
    $("#dialog-message").dialog("close");
  }
});
于 2012-07-26T18:33:47.263 回答
1

我非常怀疑这<?=$r['order_id'];?>是返回一个空字符串。如果是这种情况,它将不会被发送。dataString 也不是在 jQuery 中处理参数的首选方式。贝娄是针对这种情况的一个问题:

$("a.opener").click(function (e) {
    $("#dialog-message").dialog({

        buttons: {
            Ok: function () {

                // if sendNumber fails or evaluates to false, 
                // it will be replaced with 'null', insuring its sent anyway
                // and you can trap on the serverside.
                var sendNumber = $("input#MyIn").val() || 'null';
                var orderid = $("input#orderid").val();

                var postData = { orderid : orderid, sendNumber : sendNumber};

                //shorthand of extra niceness
                $.post('moduls/send.php', postData, function(){
                     $("#dialog-message").dialog("close");
                });
                return false;

            }
        }
    });
});
于 2012-07-26T18:33:48.033 回答
0

您当前的 jQuery 代码应该可以工作,因为隐藏输入元素的值的引用是有效的。

演示:http: //jsfiddle.net/3qpV4/

尝试提醒该值以确保其设置正确。如果不是,那么您知道问题出在您的 PHP 变量扩展中。如果它确实发出警报,那么问题出在您的 PHP 文件send.php上。

于 2012-07-26T18:29:16.640 回答