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>

试试这个代码:

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

您提供的代码存在几个问题:

  • 您没有空缺 <?php 那些关闭 ?>
  • 您有很多无效语法,例如 If (Genre == "FPS") {(什么是 流派?)或类似 <else if
  • 你有两个 "Genre" (Ganre) 的拼写。

有多种方法可以满足您的需求。由于您没有提到 Javascript,我提出一个 PHP-only 解决方案。您只需让表单提交给 相同的 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 标签并添加下面的 javascript 代码。

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