声明: arrFrmName 是数组 下标为: cd,font,price<input type="heddin" name="FrmName" value="<?=$arrFrmName?>" />
现在我要做的是:     我想把隐含域的数组值  用JS取出来.做判断...      function Action(frm)
      {
        var arrFrmName =  frm.FrmName.value;
       
           
         /* 这里问题*/         if(arrFrmName["cd"] == "cd")   //这里数组里值为空, 但是arrFrmName.length 里有值:5个 , 取出来的值为空! 为什么
         {
             .......
         }
      }

解决方案 »

  1.   

    for(var i=0;i<arrFrmName.length,i++){
    alert(arrFrmName[i]);
    }
    你自己看看结果就应该知道了
      

  2.   

    是了  ,,值为空..但是我在PHP里给的是下标 cd,font什么的...怎么可能是i呢
      

  3.   

    又一个搞不清楚状况的,你想把php(服务器端,b/s的server端)数组$arrFrmName丢在一个input框里,然后用javascript(客户端,b/s的browser端)arrFrmName["cd"]这样来读取,javascript和php是不同的语言,运行在不同的环境,如何能这么来交互呢?不可能的你可以这样
    <input type="heddin" name="cd" id='cd' value=" <?=$arrFrmName['cd']?>" />
    <input type="heddin" name="font" id='font' value=" <?=$arrFrmName['font']?>" /> 
    <script>
    alert(document.getElementById('cd').value)
    alert(document.getElementById('font').value)
    </script>
     
      

  4.   

    你取的那5个是串的长度,因为$arrFrmName是数组,直接echo的话,在文本框里的值就是Array,你可以把hidden变成text框看看值js : alert("Array".length)如果不想建那么多文本框,你完全可以自己格式化数组成一个串,比如json串,这样js端可以直接识别$array['cd'] = 1;
    $array['name'] = "hello world";
    $array['phone'] = 3;foreach($array as $k=>$v)
    {
    $str[] = $k.":'".$v."'";
    }
    $str = "{".implode(",",$str)."}";
    echo $str;
    ?>
    <input type='hidden' value="<?php echo $str;?>" name='param' id='param'/>
    <script>
    var s = eval("("+(document.getElementById('param').value)+")");alert(s.name);
    </script>