如果语句在线,则从php更新显示

时间:2018-11-22 17:24:05

标签: php html laravel

我已如下设置输入,如果仅在$client_chargeBy== "Square Foot"上提示输入,则要填写输入的问题是"Room" <div class="col-md-12 p0 "> <div class="col-md-6 PL0 p0_smresp"> <div class=" form-group "><label for="enjoy_style" class="optional">How are your rates charged by?</label> <select name="client_chargeBy" id="client_chargeBy" value="{{$client_chargeBy}}" class="form-control "> <option value="Square Foot">Square Foot</option> <option value="Room">Room</option> <option value="View">View</option> <option value="Hour">Hour</option> </select> </div> </div> <div class="col-md-6 PR0 p0_smresp"> <div class=" form-group "><label for="client_chargeRate" class="optional">What is your rates?</label> <input type="text" name="client_chargeRate" id="client_chargeRate" value="{{$client_chargeRate}}" class="form-control" autocomplete="off" placeholder="List your charge rate" aria-required="true"> </div> </div> </div> <div class="col-md-12 p0 "> <div class="col-md-6 PL0 p0_smresp"> @if($client_chargeBy == "Room") input days for Room @elseif($client_chargeBy == "Square Foot") input days for SF @endif </div> </div>

"input days for Room"

但是,我使用的方法仅在我首先提交表单时才显示输入。我要使"input days for SF"403提示符在我更改选择选项后立即显示,而不必先保存它。

2 个答案:

答案 0 :(得分:0)

首先PHP是服务器站点脚本。它在服务器上运行,然后返回结果。就这样。收到响应后,浏览器和服务器之间就没有其他东西了。

每次运行.PHP时,页面都会加载并等待服务器的响应。网站加载之前,您无法在页面上执行任何操作。因此,如果要从服务器(没有刷新/重新加载站点)获取实时更新,则应建立后台连接(Web-Socket)或应向服务器询问频繁在后台{{1} }

因此,这里您应该使用(AJAX)与服务器建立后台连接。它是客户端,它将连接客户端和服务器。

这是一个非常基本的概念。请参考此链接进行学习

Ajax request Websoket

答案 1 :(得分:0)

为了处理此实时文档更改,您可以通过Javascript来完成,因为PHP仅用于服务器端渲染,其中在HTML文档渲染之前设置了变量。我建议稍微更改一下HTML文档,以方便Javascript元素处理;

 <div class="col-md-12 p0 ">
     <div class="col-md-6 PL0 p0_smresp">
     input days for <span id="textToChange">SF</span>
     </div>
 </div>

您的Javascript将是

var selectElement = document.getElementById('client_chargeBy');
    selectElement.addEventListener('change', function() {
        let selectedIndex = selectElement.selectedIndex;
        var optionValue = selectElement[selectedIndex].value;
        var spanText = document.getElementById('textToChange');
        var updateValue = 'SF';
        switch(optionValue) {
            case 'Room':
         	updateValue = 'Room';
            break;
            case 'Square Foot':
          	updateValue = "SF";
            break;
        } 
        spanText.innerHTML = updateValue;
    });

此外,我建议您以@Banujan suggested的形式阅读更多有关实时更新的概念。从长远来看,它将对开发人员非常有用。