使用 PHP 时隐藏值正在传递,而 div 的显示样式为 none

发布于 2024-09-30 02:14:57 字数 1489 浏览 6 评论 0原文

这是我的 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 如果样式是隐藏的,它不会传递任何值。

如何解决这个问题。任何想法都会有帮助和伟大。提前致谢

Here is my 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>

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

When i click the remove button the image is hiding. But when i submit the form i am getting the hidden type's value.

But According to div if the style is hidden it will not pass any value.

How can is solve this issues. Any idea will be helpful and greatful. thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

深海少女心 2024-10-07 02:14:57

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

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

Setting an input (or its container div) to hidden will not prevent the input from being sent to the server.

You would have to either physically remove the element, or set its value to null, when hiding the container. In order to not lose the original value, store it in a temporary variable, or a property of the input object.

醉梦枕江山 2024-10-07 02:14:57

所有字段(包括隐藏字段)都会发布到 Web 服务器。

All fields including hidden, are posted to web server.

走过海棠暮 2024-10-07 02:14:57

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

一个可能的解决方案可能是添加另一个 字段,并在显示/隐藏 div 时更改其值,这样您就会在服务器端知道如果您需要“考虑”“dealImage_xxx”的值或不“考虑”。

Unfortunately hidden fields, even into 'display:none' HTML components, are sent to the server.

A possible solution could be adding another <input type="hidden" .../> field and change its value when you show/hide the div, so you will be aware on server side if you need to "consider" the value of "dealImage_xxx" or not.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文