为了账号安全,请及时绑定邮箱和手机立即绑定

从 AJAX 调用接收到数据后在同一网页上显示接收到的数据

从 AJAX 调用接收到数据后在同一网页上显示接收到的数据

PHP
白板的微信 2023-05-26 10:04:27
我有 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>

  1. 在 javascript 中处理所有内容。以下是您可能会考虑的代码流程。

有 2 个不同的 php 文件:文件 A 和文件 B。

  • 您将所有复杂的过程移至文件 B

  • 在文件A中,你只需使用javascript,将ajax发送到文件B(获取数据或其他东西,用于渲染或计算目的)

  • 完成所有事情后,只需将表单提交到下一个流程



查看完整回答
反对 回复 2023-05-26
  • 1 回答
  • 0 关注
  • 90 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信