Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在同一页中获取select值_Php_Html_Select - Fatal编程技术网

Php 在同一页中获取select值

Php 在同一页中获取select值,php,html,select,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">C

我有这个选择按钮:

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

全球统计
挑战1
挑战2
挑战3
在同一页下面几行,我有:

<div id="challenge">
    <?php
        $Ch = $_POST['challengeX']; 
        echo "Challenge: ".$Ch;

        showSomething($Ch,1,1);
    ?>
</div>

但是当我更改选项时,它没有更改post值

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

全球统计
挑战1
挑战2
挑战3
并仅在提交表单时访问同一页面中的表单值

<div id="challenge">
    <?php
        if(isset($_POST))    // checks whether any value is posted
        {
          $Ch = $_POST['challengeX']; 
          echo "Challenge: ".$Ch;
          showSomething($Ch,1,1);
        }
    ?>
</div>

以您可以使用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>

全球统计
挑战1
挑战2
挑战3
/*添加这一行*/
通过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>

全球统计
挑战1
挑战2
挑战3
函数getSelect(thisValue){
document.getElementById('resultSelect')。innerHTML=thisValue.options[thisValue.selectedIndex].text;
}

您需要在更改下拉列表时提交表单

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

全球统计
挑战1
挑战2
挑战3
对于您的php执行,您可以这样尝试:

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

PHP在服务器上运行,并将HTML(或其他数据)传送到浏览器

如果您想用PHP处理表单数据,那么必须将其包含在新的HTTP请求中(通常通过提交表单),并让PHP使用该数据生成新页面


或者,如果要在客户端上处理数据,则需要使用浏览器支持的编程语言。除非您想开始使用插件(或特定于浏览器的技术),否则只能使用JavaScript。您可以将事件侦听器更改为select元素,并更改结果

提交按钮在哪里?你能说为什么否决投票吗?