javascript生成php doens' t工作

时间:2014-07-13 11:37:46

标签: javascript php html

你好,我在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;
}
?>

我无法理解我做错了什么。一切看起来都很好。你能救我吗?

2 个答案:

答案 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才能确定将哪些部门发送回浏览器。

相关问题