隐藏值正在传递,而div的显示样式是否使用PHP

时间:2010-10-27 10:40:48

标签: php javascript html

这是我的JS:

 <script type="text/javascript">

 function display(action, id) { if
 (action == 'show') {
 document.getElementById("explanation"+id).style.display
 = "block"; document.getElementById("link"+id).href=
 "javascript:display('hide', "+id+")";
 document.getElementById("link"+id).innerHTML
 = "Close"; }

 if (action == 'hide') {
 document.getElementById("explanation"+id).style.display
 = "none"; document.getElementById("link"+id).href=
 "javascript:display('show', "+id+")";
 document.getElementById("link"+id).innerHTML
 = "Explain"; } }

 </script>

和HTML:

 <form name="test" id="test"
 method="post"
 enctype="multipart/form-data">
     {assign var="clone" value="0"}
     {section name=another loop=$dealImageTest}
     {assign var="cloneTemp" value=$clone++}
     <table><tr>
     <td width="121" align="left">
     <div id="explanation{$cloneTemp}" >

     <img src="{$dealImageTest[another]}"
 width="62" height="40" /><a
 id="link{$cloneTemp}"
 href="javascript:display('hide',
 {$cloneTemp})">Remove</a>

     <input type="hidden" name="dealImage_{$clone++}" id="{$dealImageTest[another]}"
 value="{$dealImageTest[another]}">

      </div>

      </td> </tr></table>

     {/section}

 </form>

当我单击删除按钮时,图像正在隐藏。但是当我提交表单时,我得到了隐藏类型的值。

但是根据div,如果样式被隐藏,它将不会传递任何值。

怎样才能解决这个问题。任何想法都会有所帮助。提前谢谢

3 个答案:

答案 0 :(得分:5)

将输入(或其容器div)设置为hidden不会阻止输入发送到服务器。

隐藏容器时,您必须以物理方式删除元素,或将其值设置为null。为了不丢失原始值,请将其存储在临时变量或输入对象的属性中。

答案 1 :(得分:2)

包括隐藏在内的所有字段都会发布到网络服务器。

答案 2 :(得分:2)

不幸的是,隐藏字段,甚至是“display:none”HTML组件,都会被发送到服务器。

一个可能的解决方案是添加另一个<input type="hidden" .../>字段并在显示/隐藏div时更改其值,因此如果您需要“考虑”“dealImage_xxx”的值,您将在服务器端知道或不