如何在php页面加载时将下拉选择的值存储在变量中?
我有一个下拉列表,其默认值为Small。我希望当页面加载时,预先选择的值应该存储在php变量中 HTML部分如何在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
<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中设置的那样),那么您可以直接存储它。您可以给我一些帮助材料或编辑我的代码,以便我执行我的工作。。。谢谢