将jquery变量传递给php

时间:2011-02-14 08:03:57

标签: php jquery variables

我有以下jquery代码:

  while (count < 31) {
  window['cday_' + count] = <?php echo $day_1 ?>; 
  window['tday_' + count] = (window['cday_' + count] * formfig) / formfig2; 
  count++;
  }

但是我需要在php echo语句中使用$ day_1来反映变量“count”,所以理论上应该是“echo $ day_count”。是否可以将var传递给php?


php&amp; jquery编码:

$i=0;
while ($i < $num) {
${"day_$i"}=mysql_result($result,$i,"datavalue");
$i++;
}

?>

<script type="text/javascript">
var chart1; 
var count=1;
var formfig=17;
var formfig2=2;

function chartdraw(){

      while (count < 31) {
      window['cday_' + count] = <?php echo $day_1 ?>; 
      window['tday_' + count] = (window['cday_' + count] * formfig) / formfig2; 
      count++;
      }

4 个答案:

答案 0 :(得分:3)

这里简短的回答是否定的。

要了解可能的情况,您需要深入了解正在发生的事情。您的PHP代码正在构建一个HTML文档(带有嵌入式JavaScript)并将其发送到Web浏览器。一旦Web浏览器(当然,在用户的计算机上运行,​​而不是在您的服务器上运行)呈现该页面,它将执行javascript。这是javascript变量开始实际上意味着的东西。在那之前,它们只是通过网络发送的文本。这一点在PHP代码运行完毕后很久。您的服务器在将代码发送给用户时已经关闭了该php实例。

记住这一点,您可以使用称为ajax请求的内容将javascript变量(或任意数量的其他内容)的值发送回服务器。从本质上讲,这会将一些信息(变量的值和您想要的页面名称)发送回服务器,从而使您的服务器构建一个新的网页, PHP代码。该网页的内容将返回到您可以提供的另一个javascript - 称为“回调” - 它可以获取由第二个PHP脚本创建的页面并使用它。当然,这是相当资源密集的。

除非你打算做一些只有PHP可以做的事情,否则我建议你找一种方法在javascript中尽可能多地做你的逻辑。这可以缓解所有这些复杂的问题,并在用户的机器上保持所有的辛勤工作。

如果您可以构建代码,以便您的php代码在php完成运行之前提供javascript代码所需的所有数据,那么您可以在不使用ajax做任何事情的情况下离开。这是一个例子:

<script type="text/javascript">
  var days = {};
  <? for($day = 0; $day < 30; $day++) { ?>
    days.<? echo $day ?> = "<? echo get_day_info($day) ?>";
  <? } ?>
</script>

这样做会创建一个名为days的javascript对象。然后它将填充days.i for i从0到30.它假设你有一个名为get_day_info($ day)的函数需要一天并返回当天的信息。我在这里假设您正在处理字符串 - 如果没有,您将需要删除引号,并可能根据所需的格式执行其他操作来包装数据。

答案 1 :(得分:2)

我相信唯一的方法是使用ajax。 http://api.jquery.com/jQuery.ajax/

答案 2 :(得分:1)

并非显着改变您的方法。

问题是PHP完全存在于您的服务器上,浏览器中存在javascript。 PHP 真的知道任何关于javascript的知识。 PHP将在任何javascript运行之前完全呈现您的页面。所以没有办法轻易获得这个价值。

你可以使用ajax来运行javascript,它可以在你的服务器上加载数据或点击URL,但你不能简单地用PHP代替javascript变量。您可以使用PHP变量执行此操作的原因是因为PHP实际上正在生成javascript。

答案 3 :(得分:0)

让javascript将值存储在隐藏字段中并以这种方式使用PHP获取值吗?