将下拉选择的值存储在SESSION变量中


Store the drop down selected value in a SESSION variable

我从数据库中获取一组值,以显示在下拉列表中。一旦用户从下拉列表中选择了一个项目,则所选项目应分配给SESSION变量。我试过了,但没用。请闻闻帮我把它整理一下。

<select id="FormNameSelecting" style="position:absolute; width:300px; top:50px; left:200px; "><option></option>
<?php
    $result = mysqli_query($con,"SELECT * FROM Form");
    while($row = mysqli_fetch_array($result)){      
    echo "<option  value='$row[Form_ID]'>$row[Form_Name]</option>";
    echo 
    }
?>
</select>

因此,我需要将从$row[Form_ID]和$row[FForm_Name]接收的这些值存储在名为$_session['Form_ID']和$_session['Form_Name']的两个会话变量中;有人能告诉我如何将所选项目的值分配给这两个会话变量吗。

所选的option元素必须具有selected属性。你应该试试这样的东西:

<select id="FormNameSelecting" style="position:absolute; width:300px; top:50px; left:200px; ">
<?php
    $result = mysqli_query($con,"SELECT * FROM Form");
    while($row = mysqli_fetch_array($result))
    {      
      echo "<option  value='{$row['Form_ID']}'";
      if($row['Form_ID'] == $_SESSION['Form_ID'])
        echo " selected";
      echo ">{$row['Form_Name']}</option>";
    }
?>
</select>

更新:

您可以在表单提交后将其存储在$_SESSION

<?php
  session_start(); // dont forget it!  
  if(isset($_POST['submit']))
  {
    $_SESSION['Form_ID'] = $_POST['Form_ID']; 
    $_SESSION['Form_Name'] = $_POST['Form_Name']; 
  }
?>

试试这个:在您的页面中添加这个并创建另一个页面"showValues.php"(这是您想要创建和使用会话变量的页面)。下面也给出了showValues.hp的代码。

<html>
<head>
 <script>
function showValue(vals)
{
    if (window.XMLHttpRequest)
    {   // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            var val= xmlhttp.responseText;
            document.getElementById("tbl").innerHTML+=val;
        }
    }
    xmlhttp.open("GET","showValues.php?vals="+vals,true);
    xmlhttp.send();
}
</script>
 </head>
<body>
<table id="tbl">
    <tr>
    <td>
    <select id="FormNameSelecting" style="position:absolute; width:300px; top:50px; left:200px; "><option></option>
<?php
$result = mysqli_query($con,"SELECT * FROM Form");
while($row = mysqli_fetch_array($result)){      
echo "<option  value='$row[Form_ID]'>$row[Form_Name]</option>";
echo 
}
?>
</select>
</td>
</tr>
</table>
</body>
</html>

showValues.php

<?php
session_start();
$vals=$_REQUEST['vals'];
$_SESSION['SelectValue']=$vals;
echo $_SESSION['SelectValue'];
?>

尝试这个

<form name="my_name" method="POST" action="">
<select name="FormNameSelecting" id="FormNameSelecting" style="position:absolute; width:300px; top:50px; left:200px; "> //don't forget put name at select
<option></option>
<?php
    $result = mysqli_query($con,"SELECT * FROM Form");
    while($row = mysqli_fetch_assoc($result)){ //prefer using assoc that array     
    echo "<option  value='" . $row['Form_ID'] . ":::" . $row['Form_Name'] . "'>" . $row['Form_Name'] . "</option>";
    }
?>
</select>
<input type="submit" name="go" value="go"/>
</form>
<?php
if(isset($_POST['go'])){
    $store_sesi = explode(":::",$_POST['FormNameSelecting']);
    $_SESSION['ID'] = $store[0];
    $_SESSION['Name'] = $store[1];
}
?>

希望此代码能帮助您