2015-07-13 90 views
0

请原谅我糟糕的英语。javascript + php不起作用

我想得到'本月有多少周'以及那周的循环数。 (当我检查php值'$ weekcnt'的正确数字,但不启动循环。)请帮助我,并告诉我什么是我的问题。

<script> 
    //How many week in this month 
    var calcWeekCountInTargetYearAndMonthByDate = function(year, month, day) { 
     var d = new Date(year, month, day); 
     return Math.floor((d.getDate() - d.getDay() + 12)/7); 
    } 
    //Get this month's last day 
    var calcThisMonthEndDate = function(year, month){ 
     var dt = new Date(year, month, 0).getDate(); 
     return dt; 
    } 
</script> 
<?php 
    //How many week in this month 
    $weekcnt = '<script type="text/javascript">document.write(calcWeekCountInTargetYearAndMonthByDate(2015, 6, calcThisMonthEndDate(2015,6)));</script>'; 
    echo "There is ".$weekcnt." Weeks <br>"; 
    //number of loop of the week 
    for($tablecnt = 0; $tablecnt < $weekcnt; $tablecnt++) 
    { 
     echo "NOW = ".$tablecnt; 
     //Test print 
    } 
?> 

结果(谷歌浏览器)

There is 5 Weeks 
+2

你不能在PHP中获取一个javascript的结果! php是serverside ...所以你很高兴通过ajax或form将javascript的结果发送到你的脚本或使用php函数计算周数。 – donald123

+0

@ donald123非常感谢你的回答!我会尝试Ajax或找到其他方式。(仅限PHP等)再次感谢您! – user3452170

回答

1

你不能做到这一点... PHP在服务器一侧的JavaScript是只在客户端执行评估。

可以,或者只是用PHP

单独做使用javacript相同
var calcWeekCountInTargetYearAndMonthByDate = function (year, month, day) { 
    var d = new Date(year, month, day); 
    return Math.floor((d.getDate() - d.getDay() + 12)/7); 
} 
//Get this month's last day 
var calcThisMonthEndDate = function (year, month) { 
    var dt = new Date(year, month, 0).getDate(); 
    return dt; 
} 
var num = calcWeekCountInTargetYearAndMonthByDate(2015, 6, calcThisMonthEndDate(2015, 6)); 

var text = 'There is ' + num + ' Weeks <br>'; 
for (var i = 1; i <= num; i++) { 
    text += 'NOW = ' + i + '<br />'; 
} 
document.write(text); 
+0

非常感谢你!我会尝试一下Just php的方式,因为我必须使用php和mysql。 – user3452170