如何在php页面加载时将下拉选择的值存储在变量中?

如何在php页面加载时将下拉选择的值存储在变量中?,php,html,Php,Html,我有一个下拉列表,其默认值为Small。我希望当页面加载时,预先选择的值应该存储在php变量中 HTML部分 <form action="" method = "post"> <label style="font-weight:bold; font-size:18px; margin-top:8px; float:left; margin-right:40px;">Select Size: </label> <select

我有一个下拉列表,其默认值为Small。我希望当页面加载时,预先选择的值应该存储在php变量中

HTML部分

<form action="" method = "post">        
    <label style="font-weight:bold; font-size:18px; margin-top:8px; float:left; margin-right:40px;">Select Size: </label>
    <select class="styled" name="size" style="float:right; margin-right:80px;">
        <option value="Small" selected>Small</option>
        <option value="Medium">Medium</option>
        <option value="Large">Large</option>
    </select>                          
</form>
<?php
$selected_val='';
if( isset ( $_POST['size'] ) ) {
    $selected_val = $_POST['size'];
}
echo $selected_val;
?>

选择大小:
小的
中等
大的
Php部分

<form action="" method = "post">        
    <label style="font-weight:bold; font-size:18px; margin-top:8px; float:left; margin-right:40px;">Select Size: </label>
    <select class="styled" name="size" style="float:right; margin-right:80px;">
        <option value="Small" selected>Small</option>
        <option value="Medium">Medium</option>
        <option value="Large">Large</option>
    </select>                          
</form>
<?php
$selected_val='';
if( isset ( $_POST['size'] ) ) {
    $selected_val = $_POST['size'];
}
echo $selected_val;
?>


但是当我回显$selected\u val时,这不会给我任何信息。谁能指出错误是什么以及如何做到这一点。。提前感谢。

这是您需要使用AJAX来完成任务的完整解决方案,当您加载文档时,它将自动获得所选值

   <!DOCTYPE html>
   <html lang="en">
  <head>
  <meta charset="UTF-8">
   <title>q</title>
 </head>
 <body onload="submitthis();">

<form action="" method = "post">

       <label style="font-weight:bold; font-size:18px; margin-top:8px; float:left; margin-right:40px;">Select Size: </label>
       <select onchange="submitthis();" id="sizes" class="styled" name="size" style="float:right; margin-right:80px;">
            <option value="Small" selected="">Small</option>
            <option value="Medium">Medium</option>
            <option value="Large">Large</option>
        </select>
        <div id="myDiv"></div>
 </form> 

<script>
function submitthis()
{
    var val = document.getElementById('sizes').value;
    console.log(val);
    var xmlhttp;
    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)
 {
     document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
 }
 }
 xmlhttp.open("GET","reply.php?size="+val,true);
 xmlhttp.send();
}

    </script>

Q
选择大小:
小的
中等
大的
函数submitthis()
{
var val=document.getElementById('size')。值;
控制台日志(val);
var-xmlhttp;
if(window.XMLHttpRequest)
{//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
其他的
{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
document.getElementById(“myDiv”).innerHTML=xmlhttp.responseText;
}
}
open(“GET”、“reply.php?size=“+val,true”);
xmlhttp.send();
}

您需要在同一文件夹中创建另一个名为reply.php的html文件,并粘贴以下代码

    <?php
        $selected_val='';
          if(isset($_GET['size'])){
            $selected_val = $_GET['size'];
        }
        echo $selected_val;
?>


我做了另一个小改动,当您从选择框中更改值时,它也会加载相应的值。

生成html后,您不能存储php变量。PHP是服务器端语言,这是在生成html之前。您必须使用ajax将选定的值存储到php脚本中。您正在检查POST变量,但没有发布任何内容。既然您知道加载时将选择Small(正如您在HTML中设置的那样),那么您可以直接存储它。您可以给我一些帮助材料或编辑我的代码,以便我执行我的工作。。。谢谢