帮助简单的JavaScript php / js数组

时间:2009-10-04 11:52:38

标签: javascript html arrays

有人可以告诉我这段代码有什么问题吗? 基本上我正在做的是为一些GET变量创建一个php数组。然后,我从该php数组创建一个js数组并将其传递给js函数。问题是没有调用该函数。我不会看到弹出“hi”警告。

<script type="text/javascript">
function change_values(js_array)
{
    alert("hi");
}
</script>
<?php

$first_date_month   = @$_GET["first_date_month"];
$last_date_month    = @$_GET["last_date_month"];
$resume_date_month  = @$_GET["resume_date_month"];
$pay_date_month     = @$_GET["pay_date_month"];

$first_date_day     = @$_GET["first_date_day"];
$last_date_day      = @$_GET["last_date_day"];
$resume_date_day    = @$_GET["resume_date_day"];
$pay_date_day       = @$_GET["pay_date_day"];

$pay_time_hour      = @$_GET["pay_time_hour"];
$pay_time_minutes   = @$_GET["pay_time_minutes"];

$args = array($first_date_month, $first_date_day, $last_date_month, $last_date_day, $resume_date_month, $resume_date_day, $pay_date_month, $pay_date_day, $pay_time_hour, $pay_time_minutes);

print_r($args);

echo "<script language='text/javascript'>\n";
echo "var js_array = new Array();\n";
foreach($args as $key => $value)
  echo "js_array[$key] = $value;\n";
echo "change_values(js_array)\n";
echo "</script>\n";

某些html源代码可能有助于更好地了解正在发生的事情。

<script type="text/javascript">
function change_values(js_array)
{
    alert("ola");
}
</script>
Array
(
    [0] => 3
    [1] => 99
    [2] => 99
    [3] => 99
    [4] => 99
    [5] => 99
    [6] => 99
    [7] => 99
    [8] => 99
    [9] => 99
)
<script language='text/javascript'>
var js_array = new Array();
js_array[0] = 3;
js_array[1] = 99;
js_array[2] = 99;
js_array[3] = 99;
js_array[4] = 99;
js_array[5] = 99;
js_array[6] = 99;
js_array[7] = 99;
js_array[8] = 99;
js_array[9] = 99;
change_values(js_array);
</script>

提前致谢。

5 个答案:

答案 0 :(得分:6)

<script type='text/javascript'>而不是<script language='text/javascript'>。此外,您可以使用它来序列化数组(但这不是问题):

echo "var js_array = " . json_encode($args) . ";\n";

答案 1 :(得分:1)

您已使用language属性作为第二个script元素,而不是type。请尝试使用type="text/javascript"。您还应该使用json_encode而不是自己的功能。

答案 2 :(得分:0)

在第二部分,数组映射到js,尝试替换

<script language='text/javascript'>

<script type='text/javascript'>

问候

答案 3 :(得分:0)

更改

<script language='text/javascript'>

<script type='text/javascript'>

答案 4 :(得分:0)

您可以尝试更改

吗?
echo "<script language='text/javascript'>\n";

echo "<script type='text/javascript'>\n";

它在我的电脑上就像这样。