【问题标题】:Help with simple javascript php/js array帮助简单的 javascript php/js 数组
【发布时间】:2010-12-03 17:25:20
【问题描述】:

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

<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>

提前致谢。

【问题讨论】:

    标签: javascript html arrays


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      <script language='text/javascript'>
      

      <script type='text/javascript'>
      

      问候

      【讨论】:

        【解决方案3】:

        您为第二个script 元素使用了language 属性,而不是type。改用type="text/javascript" 试试。您还应该使用json_encode 而不是您自己的函数。

        【讨论】:

          【解决方案4】:

          改变

          <script language='text/javascript'>
          

          <script type='text/javascript'>
          

          【讨论】:

            【解决方案5】:

            你可以尝试改变吗

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

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

            它在我的电脑上是这样工作的。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2010-09-17
              • 2016-03-19
              • 1970-01-01
              相关资源
              最近更新 更多