我的代码有问题,其中有一个选择被“禁用”,并且它不会将数据发送到下一页。我尝试过使用隐藏输入,但没有成功。
这是代码获取
$payt
变量的值并为用户选择的部分,但他无法更改它。
<select name="payt" id="payt" <?php if ($tsktype == "csd") { echo "readonly"; } ?>>
<option value="<?php echo $payt ?>"><?php echo $payt ?></option>
<?php
while($rowpayt = @mysqli_fetch_array($aPAYT,MYSQLI_ASSOC))
{
$payt = $rowpayt['payTerms'];
$paytd = $rowpayt['ptdescr'];
?>
<option value="<?php echo $payt ?>"><?php echo $paytd ?></option>
<?php
}
?>
</select>
这是他应该收到的另一个文件的部分。
if(!empty($_POST['payt'])){
$payt = $_POST['payt'];
echo "AQUI ESTÁ O PAYT: $payt";
}
else{
echo "Não está definida";
}
我已经尝试过
readonly
和 hidden
,但都不起作用。
美好的一天!这里的问题是,当某个元素被禁用或设置为只读时,其值不会随表单一起提交。这就是为什么你的隐藏输入方法没有按预期工作。
要解决此问题,您可以保留用户交互的禁用状态,但仍然通过使用旁边的隐藏输入字段来发送其值。
首先,为用户保留禁用或只读状态。 使用隐藏输入来携带表单提交时的值。 试试这个:
<select name="payt_disabled" id="payt" disabled>
<option value="<?php echo $payt ?>"><?php echo $payt ?></option>
<?php
while($rowpayt = @mysqli_fetch_array($aPAYT, MYSQLI_ASSOC))
{
$payt = $rowpayt['payTerms'];
$paytd = $rowpayt['ptdescr'];
?>
<option value="<?php echo $payt ?>"><?php echo $paytd ?></option>
<?php
}
?>
</select>
<!-- Hidden input to pass the value -->
<input type="hidden" name="payt" value="<?php echo $payt; ?>" />
在接收页面,您可以这样访问该值:
if (!empty($_POST['payt'])) {
$payt = $_POST['payt'];
echo "AQUI ESTÁ O PAYT: $payt";
} else {
echo "Não está definida";
}
此方法可确保禁用元素的值已提交并可在下一页上访问。