【问题标题】:values from Form not parse over to controller in MVC framework来自 Form 的值不会解析到 MVC 框架中的控制器
【发布时间】:2015-09-08 04:37:05
【问题描述】:

任务

我假设将我在相应表单字段中输入的值解析到 controller-action.php。并将值反映在 action.php 中的错误日志中,这是为了确保 method =POST 将正确的值从视图发布到控制器。

问题 我最初能够解析值,它反映在我的 error_log 中。但是,由于未知原因,现在解析的值是错误的值。这意味着,如果我选择“其他”并在我的字段中输入,则错误日志中反映的解析值显示的是机构 3 的详细信息,或者如果我没有选择“机构 1”,那么机构 1 的值应该在 error_log 中发布,但发布的值是来自机构 3 的值。

我很困惑,因为我尝试了其他字段值并且它能够正确解析。

谁能帮帮我

代码

视图中的表单域:

<form name="form_Agent" id="form_Agent" method="POST" action="action.php" onsubmit="return checkForm(this)">

<li class="bigfield">

                    <select name ="AgencyDetails" id="AgencyDetails" onchange = "return val(this.value);">
                    <option value ="0" selected = "selected"> ..</option>
                    ....
                    </select>
            </li>

<!--: when user select "Others"-->
            <div id = "extradiv" style ="display:none">

                ...
             </div>

             <!--: when user select other options other than "Others"-->
            <div  id = "Agency1" style ="display:none">
           ....</div>

</form>
<!--: Set Conditional check, if user clicks Others, direct to additional input field: Agent Name, Agency Registration Number, Agency Address if click Agency 1 or 2 or 3, to display value-->
<script>
function val(x) {
.....
}

</script>

Controller中的错误日志:action.php:

error_log(date("Y-m-d H:i:s")."_-mobile,agencyName: ".$_POST['agencyName']."\n",3,"/var/tmp/value/value.log");
error_log(date("Y-m-d H:i:s")."_-mobile, agencyRegistrationNum: ".$_POST['agentRegistrationNum']."\n",3,"/var/tmp/value/value.log");     

错误日志结果

2015-09-08 _-mobile: 
2015-09-08 _-mobile: 

【问题讨论】:

  • 我认为问题是您传递了 3 个具有相同名称的值您是否尝试仅传递一个值??
  • 这并不意味着隐藏值不会传递给服务器:)
  • @MuhammadUsman 给我一点时间,我正在单独测试它。将通知您结果
  • @MuhammadUsman 隐藏值不会传递给服务器是什么意思?
  • 表示其他值也将传递给服务器 :) 不要误会我的意思 :)

标签: javascript jquery model-view-controller


【解决方案1】:

我忽略了一个简单的语法错误,每个额外的 div 的“名称”和“ID”都是相同的。因此,html 倾向于查看最新的标签输入。我为解决以下问题所做的就是为每个 div 分配不同的“名称”和“ID”。因此它是这样的:

<div id = "extradiv" style ="display:none">

            <li class="bigfield"><input placeholder="Agency Name" type="text" name="agencyOthersName" id="agencyOthersName"/></li>
        <li class="bigfield"><input placeholder="Agency Registration Num" type="text" name="agentOthersRegistrationNum" id="agentOthersRegistrationNum"/></li>
        <li class="bigfield"><input placeholder="Agency Address" type="text" name="agentOthersAddress" id="agentOthersAddress"/></li>

         </div>

         <!--: when user select other options other than "Others"-->
        <div  id = "Agency1" style ="display:none">
       <li class="bigfield"><input value="Agency Name 1" type="text" name="agency1Name" id="agency1Name"/></li>
        <li class="bigfield"><input value="Agency Registration Num 1" type="text" name="agent1RegistrationNum" id="agent1RegistrationNum"/></li>
        <li class="bigfield"><input value="Agency Address 1" type="text" name="agent1Address" id="agent1Address"/></li>

         </div>

         <div  id = "Agency2" style ="display:none" >
       <li class="bigfield"><input value="Agency Name 2" type="text" name="agency2Name" id="agency2Name"/></li>
        <li class="bigfield"><input value="Agency Registration Num 2" type="text" name="agent2RegistrationNum" id="agent2RegistrationNum"/></li>
        <li class="bigfield"><input value="Agency Address 2" type="text" name="agent2Address" id="agent2Address"/></li></div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 2013-12-05
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多