Javascript生成PHP不起作用


javascript generating php doens't works

你好,我有一个选项列表在html是由php动态创建的。我想采取的值的选项列表没有提交的一切,然后调用另一个php函数来填补另一个选项列表。更具体地说,我希望用户首先从数据库中选择一所大学,然后选择该宇宙的一个部门。我通过从数据库中获取所有Uni,然后通过javascript找到值,动态地创建了Uni的选项列表。在javascript函数中,我要编写php代码来获取大学的所有院系。一切工作正常,直到我尝试从javascript调用php函数。

signup.php

<form>
<table>
.
.
.
 <tr>
    <td> Ίδρυμα:</td> 
    <td><select id="selection" name="selection" onchange="selectDep()" >
         <?php include './selectUni.php'; ?>
    </select>  </td>
    <td><span id="orgError" style="display: none;"></span> <td>
 </tr>
 <tr>
     <td> Τμήμα:</td> 
     <td id="dep" name="dep" ></td>
     <td><span id="depError" style="display: none;"></span><td>
  </tr>
.
.
</table>
</form> 

generateDep.js

function selectDep(){
    if(document.getElementById('selection').value === "---")
        return;
    var value=document.getElementById('selection').value;
   alert(value);
    document.getElementById('dep').innerHTML="  <?php include './selectDep.php'; selectDep("+value+"); ?> ";
    return true;
}

警报处的值是正确的

selectDep.php

<?php
//just trying to make this work for now
function selectDep($value){
    echo $value;
}
?>

我不明白我做错了什么。在我看来一切都很好。你能帮我吗?

首先你必须明白javascript代码在web浏览器中执行,而php代码在web服务器中执行。

您可以使用AJAX来解决这个问题

PHP是服务器端脚本语言。它在服务器上执行,这意味着页面必须将值作为触发器提交给服务器。Javascript和HTML都是客户端,这意味着它们都是在浏览器中完成的,而不需要与服务器通信。

要查看实际效果,请右键单击浏览器中的PHP页面并选择查看源代码。您将看到的只是HTML,无法查看生成页面的任何PHP代码。当PHP在服务器上执行时,结果是发送给浏览器的客户端代码(javascript, HTML和CSS)。

浏览器不知道如何处理PHP代码。如果您将元素的内部HTML设置为客户端脚本中的一些PHP代码,则不会执行该元素,您所做的只是让浏览器完全按照您输入的方式呈现PHP脚本。

简而言之,在服务器端PHP计算出要将哪些部门发送回浏览器之前,javascript必须将所选值提交回服务器。