0

我正在尝试创建一个下拉列表并从用户那里获取三个参数,这些参数将存储在一个 php 文件中以供以后使用。我当前的代码是:

<body>

  <header>

    <form action="parameter.php" method="post">

      <label class="heading">First</label>
      <select name="First">
        <option value="First-1">First-1</option>
        <option value="First-2">First-2</option>
      </select>
      <input type="submit">

    </form>


    <form action="parameter.php" method="post">
      <label class="heading">Second</label>
      <select name="Second">
        <option value="Second-1">Second-1</option>
        <option value="Second-2">Second-2</option>
      </select>
      <input type="submit">
    </form>

    <form action="parameter.php" method="post">
      <label class="heading">Third</label>
      <select name="Third">
        <option value="Third-1">Third-1</option>
        <option value="Third-2">Third-2</option>
        <input type="submit">
      </select>

    </form>


  </header>


</body>

这里的问题是,我不想为每个参数提交按钮,而是所有参数都应该只有一个按钮。我已经尝试了几件事,但没有一个有效。

我的.php文件

<?php
echo $_POST['First'];
echo $_POST['Second'];
echo $_POST['Third'];
?> 

我哪里错了?

编辑:更正了 php 代码

4

3 回答 3

1

只需将所有选择包装在一种形式下,而不是 3 种不同的形式。确保input提交不在选择标签内。

另外,请注意,您的 php 代码正在尝试回显您共享的 html 中不存在的参数。您选择的name将是参数名称。

<form action="parameter.php" method="post">    

<label class="heading">First</label>
<select name="First" >    
  <option value="First-1">First-1</option>
  <option value="First-2">First-2</option>      
</select>


<label class="heading">Second</label>
<select name="Second" >    
  <option value="Second-1">Second-1</option>
  <option value="Second-2">Second-2</option>     
</select>

<label class="heading">Third</label>
<select name="Third" >    
  <option value="Third-1">Third-1</option>
  <option value="Third-2">Third-2</option>    
</select>

<input type="submit"> 
</form>

PHP

<?php
echo $_POST['First'];
echo $_POST['Second'];
echo $_POST['Third'];
?> 
于 2018-05-23T04:34:38.123 回答
0

您可以以一种形式添加所有内容

<form action="parameter.php" method="post">
        <label class="heading">First</label>
        <select name="First" >
            <option value="First-1">First-1</option>
            <option value="First-2">First-2</option>
        </select>
        <label class="heading">Second</label>
        <select name="Second" >
            <option value="Second-1">Second-1</option>
            <option value="Second-2">Second-2</option>
        </select>
        <label class="heading">Third</label>
        <select name="Third" >
            <option value="Third-1">Third-1</option>
            <option value="Third-2">Third-2</option>
            <input type="submit">
        </select>
        <input type="submit" name="submit" value="submit">
    </form> 

在您的代码中,您错过了按钮“名称”。parameter.php 代码应该是这样的。

if(isset($_POST['submit'])){
echo $First = $_POST['First'];
echo $Second = $_POST['Second'];
echo $Third = $_POST['Third'];
}
于 2018-05-23T04:41:30.880 回答
0
<form action="parameter.php" method="post" id="frm">    

   <label class="heading">First</label>
   <select name="First" >    
       <option value="First-1">First-1</option>
       <option value="First-2">First-2</option>      
   </select>

   <label class="heading">Second</label>
   <select name="Second" >    
       <option value="Second-1">Second-1</option>
       <option value="Second-2">Second-2</option>     
   </select>

   <label class="heading">Third</label>
   <select name="Third" >    
       <option value="Third-1">Third-1</option>
       <option value="Third-2">Third-2</option>    
  </select>

  <input type="submit"> 
</form>

jQuery AJAX

<script>
    $('#frm').on('submit', function(e){
        e.preventDefault();
        $.ajax({
            url : $(this).attr('action'),
            type: "POST",
            dataType: "json",
            data : $(this).serialize(),
            success: function(data)
            {
                console.log(data)
            }
        });
    });
</script>

PHP

<?php
    echo $_POST['First'];
    echo $_POST['Second'];
    echo $_POST['Third'];
?>
于 2018-05-23T06:22:59.143 回答