Jquery ajax传递回数据到php变量

时间:2013-09-02 05:04:39

标签: php jquery ajax post

我有以下脚本用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 个答案:

答案 0 :(得分: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);

});

答案 1 :(得分: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

答案 2 :(得分: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);
        }
    });

答案 3 :(得分: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);
        }
    });