Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 提交表单后,如何在选择字段中保留选定值?_Php - Fatal编程技术网

Php 提交表单后,如何在选择字段中保留选定值?

Php 提交表单后,如何在选择字段中保留选定值?,php,Php,我有一个主页,我在上传票证到数据库中使用,我有选择字段,我想保留用户在提交表单之前选择的值,但它不会发生 以下是我选择字段的代码: <select name="XiD" id="XiD"> <option value="Blank" selected="selected">Please Select...</option> <option value="AAA">AAA</option> <option value="BBB"&g

我有一个主页,我在上传票证到数据库中使用,我有选择字段,我想保留用户在提交表单之前选择的值,但它不会发生

以下是我选择字段的代码:

<select name="XiD" id="XiD">
<option value="Blank" selected="selected">Please Select...</option>
<option value="AAA">AAA</option>
<option value="BBB">BBB</option>
<option value="CCC">CCC</option>
<option value="DDD">DDD</option>
<option value="EEE">EEE</option>
<option value="FFF">FFF</option>
</select>
我尝试使用以下脚本:

更新-已从$\u GET更改为$\u POST,但仍不起作用

<script type="text/javascript">
  document.getElementById('XiD').value = "<?php echo $_POST['XiD'];?>";
</script>

我的jquery版本im使用:jquery-ui-1.10.2和jquery-1.9.1

根据您的问题,您似乎在使用POST方法,因为您正在获得$XiD=$\u POST['XiD'的值;并使用GET检索值

因此,使用document.getElementById'XiD'。value=

而不是


document.getElementById'XiD'。值=

我将创建一个函数来检查当前的GET值是否与列表中的选项相同,在这种情况下,返回所需的属性以使其在默认情况下处于选中状态,即selected=selected

这应该起作用:

<?php
function isSelected($value){
    if($value == $_GET['XiD']){
        return 'selected="selected"';
    }else{
        return '';
    } 
}
?>

<select name="XiD" id="XiD">
    <option value="Blank" <? echo isSelected('Blank');?>>Please Select...</option>
    <option value="AAA" <? echo isSelected('AAA');?>>AAA</option>
    <option value="BBB" <? echo isSelected('BBB');?>>BBB</option>
    <option value="CCC" <? echo isSelected('CCC');?>>CCC</option>
    <option value="DDD" <? echo isSelected('DDD');?>>DDD</option>
    <option value="EEE" <? echo isSelected('EEE');?>>EEE</option>
    <option value="FFF" <? echo isSelected('FFF');?>>FFF</option>
</select>

您正在使用PHP生成HTML。绝对不需要使用第三种语言来指定HTML应该是什么样子的

<select name="XiD" id="XiD">
<option value="Blank"<?=$XiD=='Blank' ? ' selected="selected"' : ''?>>Please Select...</option>
<option value="AAA"<?=$XiD=='AAA' ? ' selected="selected"' : ''?>>AAA</option>
...
</select>
或者,更好的方法是使用数组简化代码,避免编写难以维护的重复代码:

<?php

$options = array(
    'Blank' => 'Please Select...',
    'AAA' => 'AAA',
    'BBB' => 'BBB',
    'CCC' => 'CCC',
    'DDD' => 'DDD',
    'EEE' => 'EEE',
    'FFF' => 'FFF',
);

<select name="XiD" id="XiD">
<?php foreach(options as $k => $v){ ?>
    <option value="Blank"<?php echo $XiD==$k ? ' selected="selected"' : ''?>>Please Select...</option>
<? } ?>
</select>
像这样使用jQuery

<script type="text/javascript">
 jQuery(document).ready(function(){

  jQuery('select#XiD').val('<?php echo $_POST['XiD'];?>');

 });
</script>

在尝试了所有这些之后,这解决不了任何问题。以前在学校做过一些研究,记得有关于保持无线电价值观的解释。但它也适用于选择选项。看这里的例子。试一下,玩一下

<?php
$example = $_POST["example"];
?>
<form method="post">        
<select name="example">
    <option <?php if (isset($example) && $example=="a") echo "selected";?>>a</option>
    <option <?php if (isset($example) && $example=="b") echo "selected";?>>b</option>
    <option <?php if (isset($example) && $example=="c") echo "selected";?>>c</option>
</select>
<input type="submit" name="submit" value="submit" />
</form>

document.getElementById'XiD'。值=;表单标记、post或get中的方法是什么?$\u-get['XiD']如何通过“$\u-get”获取变量我在表单中使用method=post,我已将脚本更改为document.getElementById'XiD'。value=;但仍然无法工作…我使用按钮提交type=submit的表单您的表单操作页面是什么??一定是这样的:我的表单就是这样的:为什么要使用id=formname=form?为什么不把身份证和名字放在别的地方呢?任何原因?我找到了它…我再次查看我的代码,发现这个:headerLocation:wireless_new.php;这就是我的页面刷新回原始状态的原因…我将代码更改为这一个,并删除了headerLocation:wireless_new.php;这解决了我的问题。。。
<?php
$example = $_POST["example"];
?>
<form method="post">        
<select name="example">
    <option <?php if (isset($example) && $example=="a") echo "selected";?>>a</option>
    <option <?php if (isset($example) && $example=="b") echo "selected";?>>b</option>
    <option <?php if (isset($example) && $example=="c") echo "selected";?>>c</option>
</select>
<input type="submit" name="submit" value="submit" />
</form>