有人可以告诉我这段代码有什么问题吗? 基本上我正在做的是为一些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>
提前致谢。
答案 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";
它在我的电脑上就像这样。