我有 2 个 PHP 文件。这是我的第一个 PHP 文件中的 JS 脚本代码,它位于 EOD 标记内。它有两个动态下拉列表,当选择第二个列表中的项目时,它会向第二个 PHP 文件提交 AJAX 调用,以便向其传递一些数据(变量 chosenStudent)——当我收到成功消息时,这似乎工作正常:$js_array_leadersGroupsName = array("group1", "group2");$js_array_students_lists = array(["Bob", "Jane"], ["Sally", "Tom"]);$js_array_leadersGroupsName = json_encode($js_array_leadersGroupsName);$js_array_students_lists = json_encode($js_array_students_lists); $Content3 = <<<EOD <form action="" id="myGroupSelectForm" method="post"> <select id="selectGroup"> <option>Choose a Group</option> </select> <select id="selectStudent"> <option>Choose a Student</option> </select> </form> <script src="https://code.jquery.com/jquery-2.2.4.min.js"></script> <script type="text/javascript"> var select = document.getElementById("selectGroup"); var options = {$js_array_leadersGroupsName}; var i; for(i = 0; i < options.length; i++) { var opt = options[i]; var el = document.createElement("option"); el.textContent = opt; el.value = opt; select.appendChild(el); } var studentList = {$js_array_students_lists}; var select2 = document.getElementById("selectStudent"); var a = document.getElementById('selectGroup'); a.addEventListener('change', function() { var i; for(i = 0; i < options.length; i++) { if ((this.value) == options[i]) { var chosenStudentList = studentList[i]; } } var select = document.getElementById("selectStudent"); var length = select.options.length; for (i = length-1; i >= 0; i--) { select.options[i] = null; }我的问题:选择第二个下拉项后,我无法让我的第二个 php 文件的 echo 命令在网页上显示 $uid 变量。如何做到这一点/我做错了什么?
1 回答
精慕HU
TA贡献1845条经验 获得超8个赞
在我明白你的意思之后,因为你想将 javascript 变量解析为 php 并在同一个 php 文件中使用它。在这种情况下,我认为无法完成,因为据我所知,当 PHP 文件运行后,它无法再运行一次。所以有2种方法可以考虑尝试:
使用 post 方法提交表单可以使用该变量,但这里的优点是,它对客户端有点不友好。
...
// Get variable $chosenStudent if existed
if (isset($_POST['chosenStudent'])) {
$uid = $_POST['chosenStudent'];
// Write your processing for new student here
}
...
<script>
b.addEventListener('change', function() {
document.getElementById("myGroupSelectForm").submit();
});
</script>
在 javascript 中处理所有内容。以下是您可能会考虑的代码流程。
有 2 个不同的 php 文件:文件 A 和文件 B。
您将所有复杂的过程移至文件 B
在文件A中,你只需使用javascript,将ajax发送到文件B(获取数据或其他东西,用于渲染或计算目的)
完成所有事情后,只需将表单提交到下一个流程
- 1 回答
- 0 关注
- 90 浏览
添加回答
举报
0/150
提交
取消