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

时间:2015-01-13 08:18:32

标签: php html

我有一个下拉列表,其默认选择值为。我希望当页面加载时,预先选择的值应存储在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 Part

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

但是,当我回应 $ selected_val 时,这并没有给我什么。任何人都可以指出错误是什么以及如何做到这一点..提前致谢。

1 个答案:

答案 0 :(得分:1)

这是您需要使用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>

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

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

我做了另一个小改动,当你从选择框更改值时,它也将加载该交叉值。