>我有一个困扰我好几天的问题 - 当复选框保持打开或关闭时,我正在尝试将变量附加到选项值中。 变量正在显示,但不是我的意图,我希望在复选框关闭时将"无订阅"附加到选项值中,当复选框打开时将"订阅"附加到选项值中。这是我的脚本:
<?php
if(isset($_POST['subscribe']) == '1') {
$sub = ", Subscribe";
} else {
$sub = ", No Subscription";}
?>
--------------------------------------------------------------------------------------------
<form class="cart" action="http://serber.com" method="post">
<section class="clear"></section>
<label>Tampons (Non-Applicator) Regular : </label>
<select name="productpr">
<option value="NT12<?php printf($sub); ?>:17.95">1 Month - $17.95 <span></span> </option>
<option value="NT12 3 Months<?php printf($sub); ?>:33.85">3 Months - $33.85</option>
<option value="NT12 6 Months<?php printf($sub); ?>:57.70">6 Months - $57.70</option>
</select>
<input type="hidden" name="submitted" value="true" />
<br /><input type="submit" value="Add to Cart">
<input type="hidden" name="subscribe[]" value="0" />
<input type="checkbox" name="subscribe[]" value="1">Check Box if you wish to have a recurring subscription</input>
</form>
I am at my wit's end with this because it seems I have the isset correct but the checkbox value
未设置。
您具有相同的hidden field
和checkbox
名称。请更改隐藏字段名称。和 在 PHP 代码中放置代码
if(isset($_POST['subscribe']) && ($_POST['subscribe'][0] == '1'))
代替
if(isset($_POST['subscribe']) == '1')
如果无法更改隐藏字段的名称,请在 if 条件中使用代码
if(isset($_POST['subscribe']) && ($_POST['subscribe'][1] == '1'))
谢谢
if (isset($_POST['subscribe'])
AND $_POST['subscribe'] == '1') {
isset()
返回布尔值,请将其评估为布尔值或使用===
将其与布尔值进行比较。虽然类型强制仍然会给出正确的结果,但它效率低下且令人困惑。只需做:
if (isset($_POST['subscribe'])) {
。但是,这本身并不能解决问题。因为您已经将输入都命名为 subscribe[]
,所以$_POST['subscribe']
将始终被设置,并且它将始终是一个包含 1 或 2 个元素的数组。为此目的创建数组是没有意义的,请尝试以下代码:
<?php
if (isset($_POST['subscribe'])) {
$sub = ", Subscribe";
} else {
$sub = ", No Subscription";
}
?>
<!--------------------------------------------->
<form class="cart" action="http://serber.com" method="post">
<section class="clear"></section>
<label>Tampons (Non-Applicator) Regular : </label>
<select name="productpr">
<option value="NT12<?php printf($sub); ?>:17.95">1 Month - $17.95</option>
<option value="NT12 3 Months<?php printf($sub); ?>:33.85">3 Months - $33.85</option>
<option value="NT12 6 Months<?php printf($sub); ?>:57.70">6 Months - $57.70</option>
</select>
<input type="hidden" name="submitted" value="true" /><br />
<input type="submit" value="Add to Cart" />
<input type="checkbox" name="subscribe" value="1"<?php if (isset($_POST['subscribe'])) echo ' checked="checked"'; ?>>Check Box if you wish to have a recurring subscription</input>
</form>
<</div>
div class="answers">试试这个。它使用您的代码为我工作。你已经放了一个<input type="hidden" name="subscribe[]" value="0">
.没这个必要。
<?php
echo"hi";
if(isset($_POST['subscribe']) == '1') {
$sub = ", Subscribe";
} else {
$sub = ", No Subscription";}
echo $sub;
?>
<html>
<body>
<form class="cart" method="post">
<section class="clear"></section>
<label>Tampons (Non-Applicator) Regular : </label>
<select name="productpr">
<option value="NT12<?php echo($sub); ?>:17.95">1 Month - $17.95 <span></span> </option>
<option value="NT12 3 Months<?php echo($sub); ?>:33.85">3 Months - $33.85</option>
<option value="NT12 6 Months<?php echo($sub); ?>:57.70">6 Months - $57.70</option>
</select>
<input type="hidden" name="submitted" value="true" />
<br /><input type="submit" value="Add to Cart">
<input type="checkbox" name="subscribe[]" value="1">Check Box if you wish to have a recurring subscription</input>
</form>
</body>
</html>