简而言之:需要在页面重新加载后保持 javascript 更改下拉框的值(点击提交按钮)。
下拉式菜单
首先用 php 数组创建值
$options_main = array(
1=>'= Equals',
'≠ Does not Equal',
'> Is greater than',
'≥ Is greater than or equal to',
'< Is less than',
'≤ Is less than or equal',
'∋ Contains',
'∌ Does not contain',
' '
);
然后下拉框(php代码)
<select name="date_day_selector[]" id="record_date_day'. $counter. '" onchange="blank()">';
foreach ( $options_main as $i1=>$opt1 ) :
echo '<option value="' .htmlspecialchars($i1) .'"' .
((htmlspecialchars($i1) ==
htmlspecialchars($_POST['date_day_selector'][$counter]))? 'selected' : "") .
'>'.htmlspecialchars($opt1) .'</option>';
endforeach;
echo '</select>';
<select name="date_month_selector[]" id="record_date_month'. $counter. '">';
foreach ( $options_main as $i1=>$opt1 ) :
echo '<option value="' .htmlspecialchars($i1) .'"' .((htmlspecialchars($i1) ==
htmlspecialchars($_POST['date_month_selector'][$counter]))? 'selected' : "") .
'>'. htmlspecialchars($opt1) .'</option>';
endforeach;
echo '</select>';
如果手动选择值并单击提交按钮,则页面重新加载并保留值。
但需要:如果在id="record_date_day'. $counter. '"
用户中选择某些值,则值id="record_date_month'. $counter. '"
变为空白' '
Javascript改变了id="record_date_day'. $counter. '"
function blank() {
<?php
$counter = 0;
$counter_maximum = 2;
while ($counter < $counter_maximum){
?>
if ( (document.getElementById('record_date_day<?php echo $counter;?>').selectedIndex == 2) || (document.getElementById('record_date_day<?php echo $counter;?>').selectedIndex == 3) || (document.getElementById('record_date_day<?php echo $counter;?>').selectedIndex == 4) || (document.getElementById('record_date_day<?php echo $counter;?>').selectedIndex == 5) ) {
document.getElementById('record_date_month<?php echo $counter;?>').selectedIndex=9;
document.getElementById('record_date_year<?php echo $counter;?>').selectedIndex=9;
}
<?php
$counter++;
}
?>
}
并且如果 javascript 已更改该值的id="record_date_day'. $counter. '"
值,则在单击提交按钮后不会保留该值。
任何想法如何在页面重新加载后保持 javascript 更改值(单击提交按钮)?
更新 1
我得出的结论是:
在页面重新加载后使用 php $_POST 在页面重新加载echo
之前设置的下拉菜单值。
如果用户手动设置下拉菜单值,则值存在。
如果javascript
更改值,则该值不存在。我尝试使用 ajax 和 php 传递下拉菜单值echo
(空白)。在我看来,这就是为什么在页面重新加载后我看到默认值的原因。
所以问题是是否可以使用 javascript 以某种方式更改下拉框的值,该值存在于 php 中。
如果没有,那么我尝试使用 php,例如:如果未设置值,则回显必要的值(不是默认值)...