-1

我有下面的脚本用 jq 生成月份中的天数,我想将回发数据传递给for循环作为 php 中的条件,以便它可以准确地填充选择框中的天数。

这是根据年份和月份更改日期的方法

$('#mm').change(function () {
    var mm = $(this).val();
    var yy = $('#yy').val(); //get the year
    var dd = days_in_month(mm, yy);

    $.ajax({
        type: "POST",
        url: 'inc/callback/req_days_in_month.php',
        data: {
            days: dd,
        },
        success: function (data) {
            //something to do to pass data to php...?
        }
    });

    $('#dd').val(dd);
});

我想$i<=31用来自 ajax 的回发值替换,

<select id="dd">
for($i=1; $i<=31; $i++){
    echo '<option value="$i">$i</option>';
}
</select>

req_days_in_month.php:

<?php
    $days = $_POST['days'];
    echo $days;
?>

有可能做到吗?

4

4 回答 4

1

我认为您不需要一些 ajax 调用来执行此操作。

$('#mm').change(function(){
var mm = $(this).val();
var yy = $('#yy').val(); //get the year
var dd = days_in_month(mm,yy);

$.ajax({
    type: "POST",
    url: 'inc/callback/req_days_in_month.php',
    data: { days: dd, },
    success: function(data){
        //something to do to pass data to php...?
    }
 });

    $('#dd').val(dd);
});

因为var dd = days_in_month(mm,yy);可以得到没有。天。

做类似的事情

$('#mm').change(function(){
var mm = $(this).val();
var yy = $('#yy').val(); //get the year
var dd = days_in_month(mm,yy);

var options = "";
for(var i = 1; i <= dd; i++){
    options += "<option value='" + i + "'>" + i + "</option>";
}
$('#dd').html(options);

});
于 2013-09-02T05:13:42.247 回答
0

尝试这个

$.ajax({
        type: "POST",
        url: 'inc/callback/req_days_in_month.php',
        data: { days: dd }, // remove comma after dd  
        success: function(data){
            //something to do to pass data to php...?
            var days = data;
            var html = '';
            for(i=1;i<=days;i++)
            {
                html += '<option value="'+i+'">'+i+'</option>';
            }
            $('#id').html(html);
        }
    });
于 2013-09-02T05:13:38.260 回答
0
$.ajax({
        type: "POST",
        url: 'inc/callback/req_days_in_month.php',
       // data: { days: dd, }, change in
      data: { days: dd }, // remove comma  
        success: function(data){
            //something to do to pass data to php...?
        }
    });

参考ajax

于 2013-09-02T05:07:55.847 回答
0

如果您在 javascript 本身中获得了天数,为什么要发出 ajax 请求并获得相同的结果?无论如何,你可以这样做,

$.ajax({
        type: "POST",
        url: 'inc/callback/req_days_in_month.php',
        data: { days: dd },
        success: function(data){
            //something to do to pass data to php...?
            var days = data;
            var html = '';
            for(i=1;i<=days;i++)
            {
                html += '<option value="'+i+'">'+i+'</option>';
            }
            $('#id').html(html);
        }
    });
于 2013-09-02T05:11:18.093 回答