我再次挠挠头,需要你的帮助。
我所拥有的是一个提交到第二页的表单,启用了会话,我在表单上存储名称值2字段并在会话中设置它们的值名称,以便用户返回页面时的用户名将在文本字段中填充。我有这个工作正常..
我正在存储的第二页
$_SESSION['captured_by'] = $_POST['captured_by'];
$_SESSION['prid'] = $_POST['prid'];
无论其..
我遇到的问题是获取一个从查询中填充的选项以具有相同的功能,这样当用户返回页面时,已保存在会话中的所选选项将保留该选项。框而不是必须再次选择它。
以下是我的内容:
表单页面: 这确实有效,并在返回页面时返回capture_by文本
<fieldset><legend>Lesson Added By *</legend>
<p class="multiple">(Required - Logon ID)</p>
<input name="captured_by" maxlength="12" id="searchfield" type="text" value="<?php
if(isset($_SESSION['captured_by'])){print stripslashes($_SESSION['captured_by']);}
else{print " ";} ?>">
</fieldset>
问题代码是这个
<select id="searchfield" name="prid">
<?php
$query = "SELECT project_name, project_id FROM ll_project ORDER BY project_name ASC;";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_assoc($result)) {
echo '<option value="'.$row['project_id'].'">'.$row['project_name'].' | '.$row['project_id'].'</option>';
}
?>
</select>
</fieldset>
我需要编辑最后一节,以便从存储的会话值中选取以前选择的选项值。
希望有人可以帮忙吗? 非常感谢。 Tazzy
答案 0 :(得分:1)
试试这个,
<select id="searchfield" name="prid">
<?php
$query = "SELECT project_name, project_id FROM ll_project ORDER BY project_name ASC;";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_assoc($result)) {
echo '<option value="'.$row['project_id'].'"'. ((isset($_SESSION['prid']) && !empty($_SESSION['prid']) && ($_SESSION['prid'] == $row['project_id'])) ? 'selected="selected"' : '') .'>'.$row['project_name'].' | '.$row['project_id'].'</option>';
}
?>
</select>
</fieldset>
答案 1 :(得分:0)
当有人更改选择时,您可以简单地使用ajax。
$('select#searchfield').change(function(){
$.ajax({
type: 'GET',
url: 'changeSession.php', // This is the url that will be requested
data: {prid: $('select#searchfield').val()},
success: function(html){
// nothing really happens because you simply update your session
},
dataType: 'html'
});
});
然后在changeSession.php
if(isset($_GET['projectId']{
$_SESSION['captured_by'] = $_POST['prid'];
}
那应该做的工作。然后,在生成表单时添加条件,如果$ _SESSION ['prid']不为空,则添加selected ='selected'。