如何在没有提交按钮php的情况下将此下拉菜单的选定选项保存到会话中


How can i save the selected option of this drop down menu into session without submit button php

我顺利地完成了几个相关的问题。我想在不使用提交按钮的情况下将下拉菜单中选择的选项保存到$_SESSION[]中,因为在提交表单之前,我必须将所选选项保存到多个页面中。不使用java脚本的任何帮助

<form method="post" action="consel.php">
<?php
$sql = "SELECT * FROM games WHERE startunix > '$nowtime' ORDER BY starttime LIMIT $offset, $rowsperpage" ;
$retval = mysql_query($sql);
   while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
      {
       echo "<div align='center'><span class='style3'>{$row['home']} VS ".
       "{$row['away']} </span></div>".
       "<font color='#000000' size='2'>{$row['country']} | {$row['league']} | Time:{$row['starttime']} </font> <br> ".
     "<select name='gm[$row[gamecode]|$row[starttime]|$row[home]|$row[away]]' >
     <option value=''>Select option</option>
                <option value='1'>YES</option>
                <option value='2'> NO</option>
                <option value='3'>Total Goals</option>
                <option value='4'>Total </option>
                <option value='5'>Goals</option>
         </select>".
     "<hr>";
                }
   ?>
  <input type="submit" name="play" value="Calculate" />
   </form>

首先是与php文件交互的ajax脚本。在这里,我将我的响应命名为yesno.php,它只是我的html页面上的一个空div。

        <script>
        function session () {
            var xmlhttp = new XMLHttpRequest ();
            xmlhttp.onreadystatechange = function () {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    document.getElementById('response').innerHTML = xmlhttp.responseText;
                }
            }
            xmlhttp.open ('GET', 'yesno.php?value='+document.getElementById('id_of_select_field').value, true);
            xmlhttp.send ();
        }
    </script>

然后在你的选择选项中,你只需像一样添加一个事件处理程序

<select id="id_of_select_field" onchange="session()">
    //options
</select>

在您的代码中,select字段没有附加id,因此添加一个id并将ajax中的id(id_of_select_field(更改为该id。

因此,在你的yesno.php上,你只需通过获取价值

$value = $_GET['value'];

并继续您的代码。