我有这个选择按钮:
<form method="post">
<label>
<select id="label" name="challengeX" style="margin-top:150px;">
<option selected value="0"> Global Statistics </option>
<option value="1">Challenge 1</option>
<option value="2">Challenge 2</option>
<option value="3">Challenge 3</option>
</select>
</label>
</form>
在同一页面中,下面几行,我有:
<div id="challenge">
<?php
$Ch = $_POST['challengeX'];
echo "Challenge: ".$Ch;
showSomething($Ch,1,1);
?>
</div>
但是当我更改选项时,它并没有改变帖子值。
答案 0 :(得分:2)
$Ch = $_POST['challengeX'];
在您提交表单之前,不会获得价值。在表单中添加一个提交按钮。
<form method="post" action="">
<label>
<select id="label" name="challengeX" style="margin-top:150px;">
<option selected value="0"> Global Statistics </option>
<option value="1">Challenge 1</option>
<option value="2">Challenge 2</option>
<option value="3">Challenge 3</option>
</select>
</label>
<input type="submit" value="Submit">
</form>
仅在提交表单时访问同一页面中的表单值。
<div id="challenge">
<?php
if(isset($_POST)) // checks whether any value is posted
{
$Ch = $_POST['challengeX'];
echo "Challenge: ".$Ch;
showSomething($Ch,1,1);
}
?>
</div>
答案 1 :(得分:1)
您需要在更改下拉列表时提交表单。
像这样更改html:
<form method="post">
<label>
<select id="label" name="challengeX" style="margin-top:150px;" onchange="this.form.submit()">
<option selected value="0"> Global Statistics </option>
<option value="1">Challenge 1</option>
<option value="2">Challenge 2</option>
<option value="3">Challenge 3</option>
</select>
</label>
</form>
对于你的php执行你可以尝试这样:
<div id="challenge">
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$Ch = $_POST['challengeX'];
echo "Challenge: ".$Ch;
showSomething($Ch,1,1);
function showSomething($Ch,1,1){
//do your stuff
}
}
?>
</div>
答案 2 :(得分:0)
PHP在服务器上运行,并将HTML(或其他数据)传递给浏览器。
如果要使用PHP处理表单数据,则必须将其包含在新的HTTP请求中(通常通过提交表单)并让PHP使用该数据生成新页面。
或者,如果要在客户端上处理数据,则需要使用浏览器支持的编程语言。除非您想开始使用插件(或浏览器特定技术),否则您将限制使用JavaScript。您可以bind更改选择元素的事件监听器,并then manipulate the DOM包含结果。
答案 3 :(得分:-1)
你可以使用Javascript的方式。如果您不想使用任何服务器,如PHP或其他东西
<form method="post">
<label>
<select id="label" name="challengeX" style="margin-top:150px;">
<option selected value="0"> Global Statistics </option>
<option value="1">Challenge 1</option>
<option value="2">Challenge 2</option>
<option value="3">Challenge 3</option>
</select>
<input type="submit" /> /* add this line */
</label>
</form>
通过Javascript
<select id="label" name="challengeX" style="margin-top:150px;" onChange="getSelect(this)">
<option selected value="0"> Global Statistics </option>
<option value="1">Challenge 1</option>
<option value="2">Challenge 2</option>
<option value="3">Challenge 3</option>
</select>
<div id="resultSelect"></div>
<script>
function getSelect(thisValue){
document.getElementById('resultSelect').innerHTML=thisValue.options[thisValue.selectedIndex].text;
}
</script>