【发布时间】:2014-11-24 05:41:05
【问题描述】:
我一直在寻找有趣的可能解决方案,不幸的是,没有人能清楚地告诉我。
我拥有的是一系列存储用户偏好的复选框,因此当页面填充时,我需要知道复选框的状态,以便它可以显示偏好。我还注意到,如果未选中复选框,HTML 不会返回值,如果未选中,我需要存储 0。那么有什么好的方法可以做到这一点呢?我只使用 HTML 和 PHP
我看到了一些解决方案并有一些问题。先上代码
<form action="TradingRules.php" method="post">
<h2><legend>Entry Rules</legend></h2>
<p><label> <input type="checkbox" name="30minRule" value="1" <?php if(isset($_POST["30minRule"])) { echo 'checked="checked" '; } ?>>30 Min Rule</label></p>
<p><label> <input type="checkbox" name="buyOnPocketPivot" value="1">Buy on Pocket Pivot</label></p>
<p><label> <input type="checkbox" name="buyEODonPPday" value="1">Buy EOD on PP Day</label></p>
<p><label> <input type="checkbox" name="buyOn10WeekLineTest" value="1">Buy on 10 week line Test (within 3%)</label></p>
<p><label> <input type="checkbox" name="okBelow400k" value="1">Ok below 400k Average</label></p>
<p><label> <input type="checkbox" name="buyIfOthersAreBreakingOut" value="1">Buy if other are breaking out</label></p>
<p><label> <input type="checkbox" name="buyIfStockHasUnusualStrength" value="1">Buy if stock has unusual strength</label></p>
<p><label> <input type="checkbox" name="buyOnNon-breakoutVolume" value="1">Buy on non-breakout Volume</label></p>
<p><label> <input type="checkbox" name="buyOnGap" value="1">Buy on Gap</label></p>
<p><label> <input type="checkbox" name="enableGapRules" value="1">Enable Gap Rules</label></p>
<p><label> <input type="checkbox" name="buy<1WeekBeforeEarnings" value="1">Buy < 1 week before earning</label></p>
<p><label> <input type="checkbox" name="buyOn3WeeksTight" value="1">Buy on 3 weeks tight</label></p>
<p><label> <input type="checkbox" name="buyOnHTF" value="1">Buy on HTF</label></p>
<p><label> <input type="checkbox" name="buyOnPullbackToPivot" value="1">Buy on pullback to pivot </label></p>
<p><input type="submit" /></p>
</form>
问题:
1) 你把隐藏按钮放在哪里?我有<p> 标签,因为我希望它们在另一个之上,所以我是否将它们全部放在<p> 标签中?那么这样的事情会起作用吗?
<p><label> <input type="hidden" name="30minRule" value="0">
<input type="checkbox" name="30minRule" value="1" <?php if(isset($_POST["30minRule"])) { echo 'checked="checked" '; } ?>>30 Min Rule</label></p>
<p><label> <input type="hidden" name="buyOnPocketPivot" value="0">
<input type="checkbox" name="buyOnPocketPivot" value="1">Buy on Pocket Pivot</label></p>
2) 关于从数据库中获取复选框状态信息的主题,我有链接到我的 php 脚本的表单是否足以获取这些值?他们都往返于同一个位置,还是我需要别的东西?
提前感谢您的帮助!
【问题讨论】:
-
1) 是的,它有效。它们是隐藏的,所以它不在乎它们在哪里。只要他们在形式。 2) 如果您知道
form中有哪些值,您也知道哪些值没有提交吗?为什么要传递未选中的输入框? -
这些用于存储规则,因此如果用户取消选中一个框并且没有任何内容发送到数据库,那么它仍然会强制执行规则。太糟糕了。
-
在您的 php 部分中,您应该有一个数组,其中包含所有可能的值作为键,并且这些值应该为 0,而不是使用 _POST 变量中的值填充同一个数组。 #1 您可以在表单标签之间的任何地方隐藏。如果您询问是否可以从“TradingRules.php”获取和更新数据库,请在 #2 问题上确定可以。在脚本开始时检查是否设置了 $_POST['30minRule'] 来更新数据库,在隐藏输入和复选框中也有相同的 name="30minRule" 可能不是您想要做的。
-
同名部分我见过两种方式,但可能不是最好有同名吧?
-
我要问一个愚蠢的问题:如果我这样做会怎样: if (30min rule = 1){ set to 1 } else{ set to 0};每一个人?工作量太大了吗?因为如果它不以 1 的形式返回,它就会以不正确的形式返回?