php通过onLoad传递变量

时间:2013-04-13 18:17:30

标签: php javascript ajax

我有一个php页面,它使用javascript在页面上生成日历。我试图传递一个变量,以便我可以在加载的页面上引用它。

以下是我用来生成日历的脚本(以及其他几个)

<script language="javaScript" type="text/javascript">
function initialCalendar(){
    var hr = new XMLHttpRequest();
    var url = "calendar_start.php";
    var currentTime = new Date();
    var month = currentTime.getMonth() + 1;
    var year = currentTime.getFullYear();
    showmonth = month;
    showyear = year;
    var vars = "showmonth="+showmonth+"&showyear="+showyear;
    hr.open("POST", url, true);
    hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    hr.onreadystatechange = function() {
        if(hr.readyState == 4 && hr.status == 200) {
            var return_data = hr.responseText;
            document.getElementById("showCalendar").innerHTML = return_data;
        }
    }
    hr.send(vars);
    document.getElementById("showCalendar").innerHTML = "processing...";
}
</script>

以下是我在php页面上显示的方式:

<body onLoad="initialCalendar();">

我尝试在初始日历()的括号中使用'<?php echo $page; ?>''<?php $_POST['$page'] ?>'

但是我没有运气,我希望我已经正确解释并且有足够的细节来制作,但是如果你需要更多的东西请注意

谢谢, 莱恩

2 个答案:

答案 0 :(得分:0)

我不知道你的$_POST数组的布局,但如果我理解了问题,你应该尝试:

<body onLoad="initialCalendar('<?php echo $_POST['page'];?>');">

并将您的函数声明更改为:

function initialCalendar(page){

请注意,我在PHP输出的值周围使用了单引号'。这样可以确保在值为字符串时不会破坏任何内容。

答案 1 :(得分:0)

因为您通过

等参数传递变量
localhost/project/calendar.php?page=something

使用$_GET['page']而不是$_POST