繁体   English   中英

PHP关联数组在Javascript函数中为null

[英]PHP associative array null in Javascript function

我有一个包含6个文本框的PHP网页,如下所示:

<html>
   <script type="text/javascript">

        function add()
        {
            //PHP associative array not storing properly in JS array

            var array = JSON.parse(<?php echo json_encode($elementsindex); ?>);//getting array

            //JS array elements not printing
            for(var i in array)
            {
                alert("key = "+i+" and value = "+array[i]);
            }

            for(var key in array)
            {
                if(array[key]===null || array[key]===0)//for loop not executing
                {
                    var valtoadd = 5;

                    array[key] = valtoadd;//add value to index IN ARRAY

                    var textbox = document.getElementById(key);
                    textbox.value = valtoadd;//add value to textbox 
                }
            }
        }
    </script>
   <body>
   <form method="POST" action="">
      <div id="operation">
            <input type="text" id = "5E" name="5E" value="">
            <input type="text" id = "4E" name="4E" value="" >
            <input type="text" id = "3E" name="3E" value="">
            <input type="text" id = "2E" name="2E" value="">
            <input type="text" id = "1E" name="1E" value="">
            <input type="text" id = "0E" name="0E" value="">
        </div>
        ....rest of the code
     </form>
        ..php code

我在同一页面中有一个PHP代码,该代码在特定的buttonclick()上调用Javascript函数add(),该按钮运行良好:

   <?php
    include 'footer.php';

   if($_SERVER['REQUEST_METHOD'] == "POST" and isset($_POST['PUSH']))
    { 
        //I am creating an associative array
        $elementsindex = array("0E"=>0 ,"1E"=>0,"2E"=>0, "3E"=>0, "4E"=>0, "5E"=>0);

        echo '<script type="text/javascript">';
        echo 'add();'; //invoking JS function
        echo '</script>';
    }
    ?>

但是,在Javascript函数add()中,PHP数组未存储在var数组中。 同样,数组元素不在警告框中打印,并且代码从不执行for(var key in array)循环。

我确定关联数组已正确传递(成功调用了Javascript函数),但可能未在JS函数处接收到,因为最初键-值对中的所有值均为零(该项目必需)。

此代码将$a存储到一个对象变量中。 我只是改变获取价值的方式。

var obj = <?php echo json_encode($a); ?>;
for (var i in obj)
{
    alert("key = " + i + " and value = " + obj[i]);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM