0

アプリケーションでユーザーからの日付値を受け入れるために、 Input type="date" フィールドを使用しました。しかし、以下に示すように、アクションメソッドで使用されるアドレスに「sdate」という名前の日付の値を投稿する必要があります。入力型日付フィールドの値をフォームポストメソッドのアクションにポストしたい。

これらの値をAJAX経由で変数に保存しましたが、これらのAJAX変数をアクションに使用する方法

私の書いたビューコードは次のとおりです。

<form method="post" id="report" class="live" target="_blank" action="http://wcidevapps.com/salescentral/jm2/troute.php?custnum=<?php echo $KUNNR?>&staffid='+staffid+'&rdate='+sdate+'">

<fieldset><legend>Today's Tasks</legend></fieldset>

<div class="span5 well">
    <div class="form-inline">
        <label class="control-label"><b> For </b> </label>
            <input type="text" name="stech" id="stech"/>
    </div><br/><br/>

    <div class="form-inline">
        <label class="control-label"><b> On </b> </label>
            <input type="date" class="datefield" name="sdate" id="sdate"/>
    </div><br/><br/>

    <button type="submit" name="open" class="btn btn-primary offset4"><i class="icon-file"></i> Open</button>
</div>

</form>



<script type="text/javascript">

var onFilter = function () {
        var obj = {
            sdate: $("#sdate").val(),
            stech: $("#stech").val()
        };
        $.ajax({
            method: 'POST',
            dataType: "JSON",
            contentType: "application/json; charset=utf-8",
            url: root + 'standard_projects/?json',
            data: obj,
            success: function (d) {
            sdate=d.sdate,
            staffid=d.staffid
            }
        });
    }
    $("#sdate").live("change", onFilter);
    $("#stech").live("change",onFilter);
</script>

これらの AJAX 変数をどのように使用できますか? sdate & スタッフ ID

4

3 に答える 3

2

ajaxの外部でajax変数を使用することはできません。その代わりに、スクリプトの最初から変数を宣言します

于 2013-01-15T06:37:00.967 に答える
0

が欠けていると思いますがdocument ready handler、すべて問題ないようです。の使用はlive最新の jQuery バージョンでは推奨されていないため、代わりに.on()ハンドラーを使用できます。

そして、あなたはいくつか欠けています';'

jQueryのドキュメントから:

jQuery 1.7以降、.live()メソッドは非推奨になりました。.on()を使用して、イベント ハンドラーをアタッチします。

これを試して、役立つかどうかを確認してください:

<script type="text/javascript">

var onFilter = function () {
        var obj = {
            sdate: $("#sdate").val(),
            stech: $("#stech").val()
        };
        $.ajax({
            method: 'POST',
            dataType: "JSON",
            contentType: "application/json; charset=utf-8",
            url: root + 'standard_projects/?json',
            data: obj,
            success: function (d) {
            sdate=d.sdate; //<--------------missing ';'
            staffid=d.staffid; //<----------missing ';'
            $('form#report').attr("action", "http://wcidevapps.com/salescentral/jm2/troute.php?custnum="+<?php echo $KUNNR?>+"&staffid=" + staffid + '&rdate=' + sdate + '"');
            }
        });
    }; //<----------------------------------missing ';'
    $(function(){
        $(document).on("change", "#sdate", onFilter);
        $(document).on("change", "#stech", onFilter);
    });
</script>
于 2012-12-20T07:09:35.047 に答える
0

成功関数で使用するだけです

<form method="post" id="report" class="live" target="_blank" action="http://wcidevapps.com/salescentral/jm2/troute.php?custnum=<?php echo $KUNNR?>&">

//...
var report=$('#report), 
    url=report.attr('action'), 
    useStaff = function(staffid, sdate){
        report.attr('action', url+'staffid='+staffid+'&rdate='+sdate);
        //submit report or so...
    };
$.ajax({
        method: 'POST',
        dataType: "JSON",
        contentType: "application/json; charset=utf-8",
        url: root + 'standard_projects/?json',
        data: obj,
        success: function (d) {
            useStaff(d.staffid, d.sdate);
        }
    });
于 2012-12-20T06:47:59.293 に答える