2012-06-18 2 views
1

То, что я пытаюсь сделать, это внутри тегов скрипта запускать javascript внутри петлей php. Например:Php внутри javascript function

<script> 
$('#mydiv').mouseover(function(){ 
time(); 
function time(){ 
<?php 
    $secs = 45; 
    $secs--; 
if($secs <= 25){ 
?>//javascript code here 
} 
}); 
</script> 

Моя главная цель состоит в том, когда пользователь не отвлекаясь от DIV, A JavaScript прогонов функции и внутри этой функции яваскрипта есть PHP, если conitions. Если время меньше 25, то выполните указанный код javascript. то другое условие, если время меньше, чем 10, тогда выполните другую функцию javascript. Любой тип помощи будет оценен. Чанки

+5

У вас есть неправильные представления о том, что PHP и Javascript являются. Они не могут работать вместе напрямую - PHP работает на сервере и javascript на клиенте. –

+0

И даже если это сработает, вы поймете, что единственное, что происходит в функции PHP, это '$ secs' становится 44, и поэтому никогда не будет меньше 25? –

ответ

7

JavaScript - это клиентский скрипт, PHP - это скрипт на стороне сервера. Итак, либо вы делаете AJAX звонки на сервер, либо просто чистые JS.

AJAX + PHP:

<script> 
    $('#mydiv').mouseover(function(){ 
     $.ajax({ 
      url: 'secs.php', 
      success: function(data) { 
       var secs = parseInt(data); 

       if(secs <= 10) { 
        // do stuff 
       } 
       else if(secs <= 25) { 
        // do stuff 
       } 
      }, 
     }); 
    }); 
</script> 

secs.php:

<?php 
    session_start(); 

    if(!isset($_SESSION['secs'])) $_SESSION['secs'] = 45; 
    else echo $_SESSION['secs'] --; 
?> 

Pure JS:

<script> 
    var secs = 45; 

    $('#mydiv').mouseover(function(){ 
     secs --; 

     if(secs <= 10) { 
      // do stuff 
     } 
     else if (secs <= 25) { 
      // do stuff 
     } 
    }); 
</script> 
+0

Я знаю, как это сделать с js. В любом случае спасибо за ответы. –

+0

Добавлена ​​простая версия AJAX. –

3

PHP работает на сервере и выводит текст.

Затем браузер интерпретирует этот текст как HTML/JS/etc.

Вы не можете запускать PHP в ответ на событие на стороне клиента, если не выдается новый HTTP-запрос.

Если вы знаете значения, которые ваш PHP заботится во время сборки страницы, вы можете сгенерировать JavaScript с данными, хранящимися в переменной.

0

вы не можете сделать это, потому что php запускается на сервере и javascript на клиенте. Это означает, что ваш php-код преобразуется в DHTML на сервере и отправляется клиенту. Но javascript работает на клиенте ... Итак, если вы хотите объединить оба из них. вам нужно снова запросить сервер у клиента (например, ajax).

Но вернитесь к своему коду ... почему вы не учитываете время в javascript? Вы можете получить то, что хотите от var date = new Date(); time = date.getCurrentTime()

Смежные вопросы