我有以下 jquery 代码:
while (count < 31) {
window['cday_' + count] = <?php echo $day_1 ?>;
window['tday_' + count] = (window['cday_' + count] * formfig) / formfig2;
count++;
}
但是我需要在 php echo 语句中使用 $day_1 来反射(reflect)变量“count”,所以理论上它应该类似于“echo $day_count”。是否可以将 var 传递给 php?
php 和 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++;
}
最佳答案
简单的回答是否定的。
要了解可能性,您需要深入了解正在发生的事情。您的 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,其中 i 从 0 到 30。它假设您有一个名为 get_day_info($day) 的函数,该函数需要一天并返回当天的信息。我在这里假设您正在处理字符串 - 如果不是,您将需要删除引号,并且可能需要执行其他操作来包装数据,具体取决于数据采用的格式。
关于php - 将 jquery 变量传递给 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4989956/