繁体   English   中英

使用 javascript 和 php while 循环

[英]working with javascript and php while loop

我想更新屏幕截图上显示的房价。 当我点击编辑房价时,它会隐藏现有按钮并显示包含现有房间价值的文本框。 当我在 php 中使用 while 循环获取此数据时,它仅适用于第一个元素。 请帮我

        used javascript as bellow



<script>
                function hide_editbtn()
                {
                var rmrate = document.getElementsByClassName("roomrate"); 

                for(var i = 0; i < rmrate.length; i++){

                rmrate[i].style.display = "none"; 
                rmrate[i].disabled = true; 
                }

                var updbtn = document.getElementsByClassName("updateratebtn"); 
                for(var i = 0; i < updbtn.length; i++){

                updbtn[i].style.display = "none"; 
                rmrate[i].disabled = true;
                }
                }


                function show_editbtn()
                {
                var rmratelink = document.getElementsByClassName("roomratelink"); 

                for(var i = 0; i < rmratelink.length; i++){

                    (function(index){
                    rmratelink[i].onclick = function(){

                        document.getElementById("roomrate").style.display="block";
                        document.getElementById("roomrate").disabled = false;



                    }    
                    })(
                }
                }

                </script>

Used html Content as bellow 

<div class="card-stacked order-sm-1 newelmnt">
            <div class="card-body pt-sm-0 pb-0 px-0 pr-sm-6 pr-md-8">
            <p> &nbsp; </p>
            <h3 class="card-title font-weight-normal text-truncate elconnt">
            Ac Room
            </h3>
            <div class="d-flex align-items-baseline price mb-1">
            <span class="d-block text-primary font-weight-500 display-5 mr-1">Rs.<label id="hotelroomrate">1500</label> &nbsp; &nbsp; <span class="btn-group-toggle roomratelink" data-toggle="buttons" onclick="show_editbtn()" id="roomratelink" style="margin-top:10px;">
            <label class="btn btn-xs btn-outline-primary mb-2">
            <input type="checkbox"> Edit Room Rate
            </label>
            </span> 
            </span>
            <label class="sr-only" for="user-name">&nbsp;</label>
            <input type="text" class="form-control roomrate" id="roomrate" aria-describedby="user-name" placeholder="Modify Room Rate" style="width:180px;padding-right:10px;"/> &nbsp;  &nbsp;
            <span class="btn-group-toggle updateratebtn" data-toggle="buttons" id="updateratebtn" >
            <label class="btn btn-outline-primary mb-2" style="background:#512da8;color:#fff;margin-top:5px;">
            <input type="checkbox"> Submit
            </label>
            </span>
            </div>
            </div>
            </div>

截屏

我想更新屏幕截图上显示的房价。 当我点击编辑房价时,它会隐藏现有按钮并显示包含现有房间价值的文本框。 当我在 php 中使用 while 循环获取此数据时,它仅适用于第一个元素。 请帮我

您可以尝试删除侦听器,因为您只想显示按钮。 其次,对元素使用类而不是 ID。 ID 是唯一的。 因此,当您循环它时,只会处理第一次出现。 将#roomrate ID 设为类 .roomrate。

 for(var i = 0; i < rmratelink.length; i++){
     let btn = rmratelink[i].getElementsByClassName('roomrate')[0];
     btn.style.display="block";
     btn.disabled = false; 
 }

希望能帮助到你

暂无
暂无

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

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