2017-02-08 21 views
1

То, что я пытаюсь сделать с приведенным ниже кодом, вызывает функцию PHP из выпадающего меню.Dropdown onchange вызывает функцию 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> 
+2

Вы не можете вызвать PHP функцию с помощью JavaScript. – Jer

+2

Вы можете вызвать функцию js при изменении. Затем напишите ajax для вызова php-файла в js-функции –

ответ

2

простой Ajax с помощью Jquery

индексной страницы

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

в submit.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 АЯКС использования XMLHttpRequest

+0

Кажется, что не идет в php-файл для эха. Есть ли это, он может просто пойти туда, как если бы это была простая ссылка. –

+0

Вы имеете в виду перенаправление страницы в файл php? –

1

Не удается сделать это, используйте функцию 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> 
+0

Как я могу заставить Javaacript вызывать функцию PHP. –

1

не связывает OnChange событие с функцией PHP. должны использовать функцию JavaScript

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

Вы можете получить выбранное значение из выпадающего списка, просто используя php без использования JavaScript.

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