你好,我有一个选项列表在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必须将所选值提交回服务器。