你好,我在html中有一个由php动态创建的选项列表。我想采用选项列表的值,然后使用subbmiting所有内容,然后调用另一个php函数来填充另一个选项列表。更具体地说,我希望用户首先从数据库中选择一个大学,然后选择该Universe的一个部门。我通过从数据库中提取所有Uni来创建动态的Uni选项列表,然后通过javascript找到该值。所以在javascript函数中我想编写php代码以便从大学中获取所有部门。 Eveything工作正常,直到我尝试从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;
}
?>
我无法理解我做错了什么。一切看起来都很好。你能救我吗?
答案 0 :(得分:1)
首先您必须了解javascript代码在 Web浏览器中执行,但php代码在 Web服务器中执行。
您可以使用AJAX来解决问题。
答案 1 :(得分:0)
PHP是一种服务器端脚本语言。它在服务器上执行,这意味着页面必须将值作为触发器提交给服务器。 Javascript和HTML是客户端的,这意味着它们都是在浏览器中完成的,无需与服务器通信。
要查看此操作,请右键单击浏览器中的PHP页面,然后选择查看源代码。您将看到的只是HTML,您将无法查看生成页面的任何PHP代码。当PHP在服务器上执行时,结果是发送到浏览器的客户端代码(javascript,HTML和CSS)。
浏览器不知道如何处理PHP代码。如果在客户端脚本中将元素的内部HTML设置为某些PHP代码,它将不会被执行,您将实现的只是让浏览器完全按照您输入的方式呈现PHP脚本。
简而言之,javascript必须将选定的值提交回服务器,然后服务器端的PHP才能确定将哪些部门发送回浏览器。