【发布时间】:2015-09-09 10:13:21
【问题描述】:
我正在尝试将值记录在我的控制器-> action.php 中。这些值是来自视图的POST-ed -> 带有字段列表的表单。在我的表单中,我创建了一个带有选项列表的<select> 框,每个选项都有与之关联的详细信息。
例如 -> 在我的选项 A 的下拉列表中,我有以下相关的详细信息:姓名、regNum 和地址。选项 B 还具有以下名称、注册号和地址的详细信息。相关的每个细节都是独一无二的。
因此,当我提交表单时,与每个选项关联的详细信息将POST-ed 到控制器代码。因此,为了确保控制器的正确值是POST-ed,*.php,因此我在控制器中创建了一个错误日志文件,*.php,如下所示:
<?php
if ( (isset($_POST)) && (0 < count($_POST)) )
{
//error log for details associated with option A
error_log(date("Y-m-d H:i:s")."_-ipad,agencyName: ".$_POST['agencyName']."\n",3,"/var/tmp/*/post.log");
error_log(date("Y-m-d H:i:s")."_-ipad, agencyRegistrationNum: ".$_POST['agentRegistrationNum']."\n",3,"/var/tmp/*/post.log");
error_log(date("Y-m-d H:i:s")."_-ipad, agencyAddress: ".$_POST['agentAddress']."\n",3,"/var/tmp/*/post.log");
}
//error log for details associated with option B
error_log(date("Y-m-d H:i:s")."_-ipad,agencyName: ".$_POST['agency2Name']."\n",3,"/var/tmp/*/post.log");
error_log(date("Y-m-d H:i:s")."_-ipad, agencyRegistrationNum: ".$_POST['agent2RegistrationNum']."\n",3,"/var/tmp/*/post.log");
error_log(date("Y-m-d H:i:s")."_-ipad, agencyAddress: ".$_POST['agent2Address']."\n",3,"/var/tmp/*/post.log");
}
....
}
.....
?>
此外,还有多个 error_log 来监控每个单独选项的详细信息
这是在视图 [表单] 中显示每个选项的详细信息的代码(我故意没有插入 <select> 代码,因为它不是问题的一部分) :
function val(ddbox) {
if ( ddbox.options[ddbox.selectedIndex].value == "Others"){
document.getElementById("extradiv").style.display = "block";
}else{
document.getElementById("extradiv").style.display = "none";
}
if( ddbox.options[ddbox.selectedIndex].value != "Others"){
document.getElementById("Agency1").style.display = "block";
}else{
document.getElementById("Agency1").style.display = "none";
}
}
<form name="*" id="*" method="POST" action="*.php" onsubmit="return checkForm(this)">
<div id = "Others" 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-->
<div id = "Agency1" style ="display:none" >
<li class="bigfield"><input value="Agency Name A" type="text" name="agencyName" id="agencyName" readonly></li>
<li class="bigfield"><input value="Agency Registration Num A" type="text" name="agentRegistrationNum" id="agentRegistrationNum" readonly/></li>
<li class="bigfield"><input value="Agency Address A" type="text" name="agentAddress" id="agentAddress" readonly/></li>
</div>
</form>
因此,问题是当我提交表单并显示error_log时,它会显示冗余日志以及正确的日志。
例如-> 当我从表单的选择列表中选择选项 B 时,选项 B 的详细信息将被拉出并显示,因此当我提交表单时,错误日志仅假设显示选项的详细信息B 并且不显示选项 A 和选项 C 的详细信息。总的来说,它显示了所有详细信息。
因此,我如何正确调用控制器中的错误日志以显示视图中的选项(form)
时显示详细信息【问题讨论】:
-
显示当前尝试加载错误日志数据的代码
-
@RiggsFolly,你是什么意思?我只是使用 error_log 从表单中捕获值。
-
好的,那我不明白这个问题,请尝试扩展因此,当视图中的选项(表单)正在被选中
-
@RiggsFolly 我的 error_log 在控制器代码中,用于捕获与表单中的选择列表关联的值,查看代码。因此,当我选择选项 B 时,控制器代码中监控选项 B 值的错误日志应该只显示。但是此时,当我选择选项 B 时,除了选项 B 之外,还显示了监视选项 A 和选项 C 和选项 D 值的错误日志。因此,我只需要更改 error_log 以使其只会根据表格中选择的选项显示。希望我说清楚了
标签: javascript php jquery forms model-view-controller