PHP:使用提交按钮和if/else语句连接下拉列表


PHP: connect drop-down list with submit button and if/else statement

所以,来解释我的问题。我在web服务器上有四个.php代码,在php代码中也有下拉列表(它包括服务器上所有四个php文件的名称)。我还有提交按钮。

我应该做以下操作:用户从下拉列表中选择一个名称,单击提交按钮,然后调用php文件并在网页上显示。

问题是,我不知道如何连接这三部分php代码。

<p>
  What Genre you want?
<select name="Ganre">
  <option value="">Select...</option>
  <option value="FPS">FPS</option>
  <option value="JRPG">JRPG</option>
  <option value="RPG">RPG</option>
  <option value="Sports">Sports</option>
</select>
<input type="submit" value="Submit" />
<if (Genre == "FPS") { ?>
<form method="get" action="FPS.php"}>
  <else if (Genre == "JRPG") { ?>
  <form method="get" action="JRPG.php"}>
    <else if (Genre == "RPG") { ?>
    <form method="get" action="RPG.php"}>
      <else if (Genre == "Sports") { ?>
      <form method="get" action="Sports.php"}>
</p>

您提供的代码有几个问题:

  • 对于关闭的?>,您没有打开的<?php
  • 你有很多无效语法,比如If (Genre == "FPS") {(什么是流派?)<else if
  • 你有两种"流派"(Ganre)的拼写

有几种方法可以做你想做的事。由于您没有提到Javascript,我提出了一个仅使用PHP的解决方案。您只需将表格提交给相同的PHP文件,然后检测做出了哪个选择。然后让PHP重定向到选择页面:

<?php
   if (isset($_GET["genre"])) {
       // User submitted their choice, so redirect to that page
       // Make sure not to echo anything when using header():
       header("Location: " . $_GET["genre"] . ".php");
       // Make sure to not execute any other code in this file
       exit();
   } 
   // User did not yet submit a choice, so present list
?>
<form method="get">
    <p>
        What Genre you want?
        <select name="genre">
            <option value="">Select...</option>
            <option value="FPS">FPS</option>
            <option value="JRPG">JRPG</option>
            <option value="RPG">RPG</option>
            <option value="Sports">Sports</option>
        </select>
        <input type="submit" value="Submit"/>
    </p>
</form>

将onchange添加到select标记中,并在下面添加javasctipt代码。

<form method="get" action="">
  <select name="Ganre" onchange="actionChangdde(this)">
    <option value="">Select...</option>
    <option value="FPS">FPS</option>
    <option value="JRPG">JRPG</option>
    <option value="RPG">RPG</option>
    <option value="Sports">Sports</option>
  </select>                     
  <input type="submit" value="Submit" />
</form>
<script>
    function actionChangdde(sel){
        var getSelVal = sel.value;
        var repAction = getSelVal+'.php';               
        sel.parentElement.setAttribute("action", repAction);                
    }
</script>

试试这个代码:

<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</head>
<form>
<p>
  What Genre you want?
<select name="Ganre" id="genre">
  <option value="">Select...</option>
  <option value="FPS">FPS</option>
  <option value="JRPG">JRPG</option>
  <option value="RPG">RPG</option>
  <option value="Sports">Sports</option>
</select>
<input type="submit" value="Submit" id="submit_button"/>
</p>
</form>
<script type="text/javascript">
    $(document).ready(function(){
      var dropDownValue = $('#genre').val();
      $('#submit_button').click(function () {
      if($('#genre').val() == "FPS"){
        window.location="FPS.php";
      }
      if($('#genre').val() == "JRPG"){
        window.location="JRPG.php";
      }
      if($('#genre').val() == "RPG"){
        window.location="RPG.php";
      }
      if($('#genre').val() == "Sports"){
        window.location="Sports.php";
      }
      if($('#genre').val() == ""){
        return false;
      }
  });
    });
</script>