сброс переменных в php для отображения в JavaScript - PullRequest
0 голосов
/ 21 февраля 2012

Я пытаюсь получить некоторые значения из БД и затем помещаю эти значения в переменные javascript. Мне удалось сделать это, проблема, с которой я сталкиваюсь, это когда значения в БД изменяют значения переменных, а не меняются. Я понял, что проблема заключается в моем PHP, но я не могу найти его. Ребята, вы можете мне помочь?

вот мой код:

PHP

<?php
session_start();
if(!isset($_SESSION['u_name'])){
$_SESSION['u_name'] = '';
}

mysql_connect ("localhost", "root", "") or die ('Error: ' . mysql_error());
mysql_select_db('raffleiz_Main')or die ("cannot select DB :(");

$signups = mysql_query("SELECT * FROM `Rafflez_info`") or die ('Error: ' . mysql_error());
$row = mysql_num_rows($signups);

    //pull all of the data and store it
    for($p = 0; $p < $row; $p++){
        $participants[$p] = mysql_result($signups, $p, "#_participants");
    };
        for($a = 0; $a < $row; $a++){
        $max_participants[$a] = mysql_result($signups, $a, "max_participants");
    };

?>

и моя функция JavaScript:

function progress(){

    var signups = "<?php echo $participants[0]; ?>";
    var maxP = "<?php echo $max_participants[0]; ?>";

    alert (signups);
    alert (maxP);

    var pSignup = signups / maxP;

    alert (pSignup);

    var total = 550 * pSignup;

    var theImg = document.getElementById('progress');
    theImg.width = total;

    alert (total);

};

Я поместил туда команду «alert», чтобы я мог видеть изменение значений. сейчас значения не меняются, независимо от того, на что я их изменяю в БД.

Ответы [ 2 ]

1 голос
/ 21 февраля 2012

PHP - это серверный язык , означающий, что при передаче сценария от сервера к клиенту пути назад нет.

JavaScript - это клиентна стороне языка , таким образом, может получать значения от языка на стороне сервера, такого как PHP.Полученные значения будут только на стороне клиента, если хотите, копией.

Вы можете использовать API XMLHttpRequest для запроса сценария с сервера, обновляя локальные значения на стороне клиента.

Я рекомендую использовать функцию jQuery $.ajax , чтобы легко добиться этого.

Вот хорошее руководство от Nettuts , чтобы начать работу.

0 голосов
/ 21 февраля 2012

Вам нужно позвонить на свою страницу php и спросить, если значения меняются. Вы можете легко использовать JQuery AJAX для достижения этой цели. Используйте JSON для облегчения передачи данных. Если вы хотите проверить, если значения меняются каждые 3 секунды, например, вы можете сделать это:

var interval = window.setInterval(function(){
  jQuery.ajax({
   url: 'your php file address',
   success: function(data){
      progress(data)
   }
  });
}, 3000);

Вам нужно будет изменить proccess и код php. Это просто чтобы дать вам идею.

...