0

私はjQueryに少し問題があります-jquery ui確認ダイアログには2つの入力があります.1つ目-正確な値で非表示= "" 2つ目-入力テキスト-ここに問題があります。

「OK」をクリックすると、スクリプトは最初の値のみを送信し、2 番目は空です。しかし、value="123" と書くと、2 つ送信されます。

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 に答える