如何让我的php变量可访问?

时间:2015-05-15 05:21:10

标签: javascript php jquery html ajax

我正在尝试实现一个计时器。我从SO帖子中学到了这个想法。

<?php

  if(($_SERVER['REQUEST_METHOD'] === 'POST') && !empty($_POST['username']))
  {
    //secondsDiff is declared here
    $remainingDay     = floor($secondsDiff/60/60/24);
  }
?>

这是我的PHP代码。我的php,html和JS代码在同一页面中。我的html中有一个按钮。当用户点击html页面时,它将调用Ajax函数

                        //url:"onlinetest.php",
                        //dataType: 'json',
                        beforeSend: function()
                        {
                            $(".startMyTest").off('click');
                            setCountDown();
                        }

它将调用setCountDown()方法,该方法在最开始包含一行

     var days = <?php echo $remainingDay; ?>; 

当我运行页面时,它会在上面的行中显示[甚至在单击按钮之前] "expected expression, got '<'"。我怀疑是

为什么在我触发按钮之前会更换此php变量。请让我知道锄头来解决这个问题或如何改变我的想法。

3 个答案:

答案 0 :(得分:8)

问题是,由于初始加载,$_POST值未填充(第一次加载时为空),

您设置的变量未定义,只需确保初始化该变量。

<?php
// initialize
$remainingDay = 1;
if(($_SERVER['REQUEST_METHOD'] === 'POST') && !empty($_POST['username']))
{
    //secondsDiff is declared here
    $remainingDay     = floor($secondsDiff/60/60/24);
    echo json_encode(array('remaining_day' => $remainingDay);
    exit;
}
?>

<script>
var days = <?php echo $remainingDay; ?>;
$('.your_button').on('click', function(){
    $.ajax({
        url: 'something.php',
        dataType: 'JSON',
        type: 'POST',
        beforeSend: function() {
            // whatever processes you need
        },
        success: function(response) {
            alert(response.remaining_day);
        }
    });
});
</script>

这只是基本的想法,我刚刚为该特定示例添加了其他代码,只需添加/更改您需要的其余逻辑。

答案 1 :(得分:2)

试试这个,

var days = "<?php echo $remainingDay; ?>";

答案 2 :(得分:2)

您可以将<tabs><pane title="my First tab"></pane></tabs>变量传递到 beforeEach(inject(function ($rootScope, $compile, $injector) { httpBackend = $injector.get('$httpBackend'); elm = angular.element( '<div>' + '<tabs>' + '<pane title="First Tab">' + 'First content is ' + '</pane>' + '<pane title="Second Tab">' + 'Second content is ' + '</pane>' + '</tabs>' + '</div>'); scope = $rootScope; $compile(elm)(scope); scope.$digest(); httpBackend.whenGET('feature/app/public.htm').respond(elm); })); it('should create clickable titles', function () { console.log(elm.find('ul.nav-tabs')); var titles = elm.find('ul.nav-tabs li a'); expect(titles.length).toBe(2); expect(titles.eq(0).text()).toBe('First Tab'); expect(titles.eq(1).text()).toBe('Second Tab'); }); 代码,例如

php

注意:

如果你想将php的JS值传递给var jsvariable ="<?php echo $phpvariable ?>"; ,你可以

json_encoded