如何将一个php变量($ total)传递给外部Javascript,如输入?

时间:2009-11-26 21:54:48

标签: php javascript

我有一个带有变量$ total的php文件作为其变量之一。

作为我项目的一部分,我必须打印一份结果表。 每当我显示表格时都会调用外部javascript,类似这样的

echo "<script src='course.js' language='JavaScript'></script>";
echo "<table border='1'>";
echo "<tr>";
echo "<td><td>";

这个表的每一行都有一个复选框,我调用脚本文件来检查复选框的数量是否不超过8,我需要$ total变量,这是表中的总行数

我的course.js文件看起来像这样(假设$ total)

var count = 0;

for(i=1;i<=$total;i++)
{
    if(document.getElementByTag('course."i"').checked==true)
      count++;
}

if(count==8)
{
    for(i=1;i<total;i++)
    {
        document.getElementById('course."i"').disable=true;
    }
}
}

4 个答案:

答案 0 :(得分:4)

从PHP输出HTML时,在嵌入脚本之前将JavaScript变量设置为等于total。像...这样的东西。

echo "<script type="text/javascript">var php_total = '" . $total . "';</script>";
echo "<script src='course.js' type='text/javascript'></script>";
echo "<table border='1'>";
echo "<tr>";
echo "<td>";

然后在course.js中你可以调用JS变量php_total。

老实说,我仍然不能100%确定你想要做什么,但我不认为这是正确的做法。您的JavaScript甚至不应该运行。

您可以使用JavaScript获取总行数。此外,我对这个“神奇数字”8的来源感到有点困惑。

答案 1 :(得分:1)

除非你的javascript文件存在比这里指出的更多的堆,否则我真的不明白它为什么需要它。

是输出表内容的php,是吗?因此,最初将这些复选框设置为选中/取消选中的是php吗?那么为什么php不能计算已设置检查的数量,如果检查了必需的数字(8?),也将它们设置为禁用?

答案 2 :(得分:0)

您可以将变量存储在隐藏字段中,例如

<input type="hidden" id="total" value="<?=$total?>" />

然后使用javascript拉取值:

var total = document.getElementById("total").value

答案 3 :(得分:0)

我认为有几种方法可以做到这一点。

php echo

就像威廉说的那样只使用回声。这是我猜的最简单的方法。我还认为如果您在代码中忽略它并且它不是平台无关的,那么这看起来有点脏。

从url传递json

几乎所有语言都有可能对json进行编码/解码。在php中你可以通过调用json_encodejson_decode来完成它,它将PHP代码转换为你可以操作的javascript

使用Jquery.getJson(),您可以获得javascript并使用它。同 jsonp您甚至可以跨域工作。