0

我又一次摸不着头脑,需要你的帮助。

我所拥有的是一个提交到第二页的表单,启用了会话,我将名称值 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>

我需要编辑最后一部分,以便它从存储的会话值中获取先前选择的选项值。

希望有人可以帮忙?非常感谢。塔兹

4

2 回答 2

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>
于 2013-05-27T15:31:03.393 回答
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'。

于 2013-05-27T15:31:30.910 回答