在同一页面中获取选择值

时间:2014-09-01 12:16:27

标签: php html select

我有这个选择按钮:

<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>

但是当我更改选项时,它并没有改变帖子值。

4 个答案:

答案 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>