我使用了一个Input type =“date”字段来接受我的应用程序中用户的日期值。但是我必须将名为“sdate”的日期值发布到action方法中使用的地址中,如下所示。我想将输入类型日期字段的值发布到Form Post方法的操作中。
我已经通过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&amp; STAFFID
答案 0 :(得分:2)
你不能在ajax之外使用ajax变量。而不是从脚本开始
的Declare变量答案 1 :(得分: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);
}
});
答案 2 :(得分:0)
我认为你错过了document ready handler
,一切似乎都很好。在最新的jQuery版本中不推荐使用live
,因此您可以使用.on()
处理程序。
你错过了一些';'
:
从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>