【问题标题】:Dropdown onchange calling PHP Function下拉 onchange 调用 PHP 函数
【发布时间】:2017-06-25 17:58:55
【问题描述】:

我试图用下面的代码做的是从下拉菜单中调用一个 PHP 函数。

有干净的方法吗?

代码:

<html>
<head>
</head>
<body>
    <?php
        function OnSelectionChange() {
            echo("OK IT WORKS");
        }    
    ?>
<section>
    <select onchange="OnSelectionChange()">
        <option value='' disabled selected>Assign Driver</option>
        <option value='4353'>Steve Jobs</option>
        <option value='3333'>Ian Wright</option>
        <option value='66666'>Mark James</option>
    </select>
</section>    
</body>
</html>

【问题讨论】:

  • 你不能用javascript调用PHP函数。
  • 您可以在更改时调用 js 函数。然后写一个ajax调用js函数中的php文件

标签: php html select onchange dropdown


【解决方案1】:

您可以直接使用 php 从下拉列表中获取选定的值,而无需使用 JavaScript。

<html>
<head>
<title>Country</title>
</head>
<body>
<form method="POST" action="">
    Select Your Country 
    <select name="country" onchange="this.form.submit()">
        <option value="" disabled selected>--select--</option>
        <option value="india">India</option>
        <option value="us">Us</option>
        <option value="europe">Europe</option>
    </select>
</form>
<?php
   if(isset($_POST["country"])){
       $country=$_POST["country"];
       echo "select country is => ".$country;
   }
?>
</body>
</html>

【讨论】:

  • 太棒了..!!工作得很好..!!
【解决方案2】:

使用 jquery 的简单 ajax

索引页面

<!DOCTYPE html>
<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
        <script>
            $(document).ready(function(){
            $('#myDropDown').change(function(){
                //Selected value
                var inputValue = $(this).val();
                alert("value in js "+inputValue);

                //Ajax for calling php function
                $.post('submit.php', { dropdownValue: inputValue }, function(data){
                    alert('ajax completed. Response:  '+data);
                    //do after submission operation in DOM
                });
            });
        });
        </script>
    </head>
<body>
    <select id="myDropDown">
        <option value='' disabled selected>Assign Driver</option>
        <option value='4353'>Steve Jobs</option>
        <option value='3333'>Ian Wright</option>
        <option value='66666'>Mark James</option>
     </select>

</body>
</html>

在提交.php中

<?php
function processDrpdown($selectedVal) {
    echo "Selected value in php ".$selectedVal;
}        

if ($_POST['dropdownValue']){
    //call the function or execute the code
    processDrpdown($_POST['dropdownValue']);
}

对于简单的 js ajax 使用 XMLHttpRequest

【讨论】:

  • 似乎没有去php文件回显。有没有它可以像一个简单的链接一样去那里。
  • 你的意思是把页面重定向到一个php文件吗?
【解决方案3】:

不将 onchange 事件与 php 函数连接。 必须使用javascript函数

<script>
 function OnSelectionChange()
 {
  alert("OK IT WORKS");
 }
</script>

【讨论】:

    【解决方案4】:

    不能这样做,请改用 JavaScript 函数

    <html>
    <head>
    </head>
    <body>
    
    <script>
    function OnSelectionChange()
    {
     alert("OK IT WORKS");
    }
    </script>
    
    <section>
     <select onchange="OnSelectionChange()">
      <option value='' disabled selected>Assign Driver</option>
      <option value='4353'>Steve Jobs</option>
      <option value='3333'>Ian Wright</option>
      <option value='66666'>Mark James</option>
     </select>
    </section>
    
    
    </body>
    </html>
    

    【讨论】:

    • 如何让 Javaacript 调用 PHP 函数。
    【解决方案5】:

    <html>
    <head>
    <title>Country</title>
    </head>
    <body>
    <form>
        Select Your Country 
        <select name="country" onchange="this.form.submit()">
            <option value="" disabled selected>--select--</option>
            <option value="india">India</option>
            <option value="us">Us</option>
            <option value="europe">Europe</option>
        </select>
    </form>
    <?php
       if(isset($_GET["country"])){
           $country=$_GET["country"];
           echo "select country is => ".$country;
       }
    ?>
    </body>
    </html>

    【讨论】:

    • 欢迎 @Prmaja Co. - 您应该添加对附加/修改代码的作用的说明。
    【解决方案6】:

    <html>
    <head>
    <title>Country</title>
    </head>
    <body>
    <form>
        Select Your Country 
        <select name="country" onchange="this.form.submit()">
            <option value="" disabled selected>--select--</option>
            <option value="india">India</option>
            <option value="us">Us</option>
            <option value="europe">Europe</option>
        </select>
    </form>
    <?php
       if(isset($_GET["country"])){
           $country=$_GET["country"];
           echo "select country is => ".$country;
       }
    ?>
    </body>
    </html>

    【讨论】:

      【解决方案7】:

      这种温和的适应对我来说效果很好。非常感谢 vivekcs0114,此外还很好地避免了 JS 和所需的 Ajax 解决方案,在经历了大约 200 次悲惨的尝试之后,这完全是一场灾难。

      <form method="post" action="">
      <select method="post" name="areasel" onchange="this.form.submit()"> 
      <option value="Choose one">Choose one</option>
      <option value="Complete Airframe">Complete Airframe</option>
      <option value="Armstrong Siddeley">Armstrong Siddeley</option>
      <option value="Something">Something</option>
      </select>
      </form>
      <?php
      if(isset($_POST["areasel"]))
      {
      $type=$_POST["areasel"];
      echo "<BR>Do some SQL stuff using :".$type;
      }
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-21
        • 1970-01-01
        • 2015-01-06
        相关资源
        最近更新 更多