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

我有 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 变量。如何做到这一点/我做错了什么?


白板的微信
浏览 102回答 1
1回答

精慕HU

在我明白你的意思之后,因为你想将 javascript 变量解析为 php 并在同一个 php 文件中使用它。在这种情况下,我认为无法完成,因为据我所知,当 PHP 文件运行后,它无法再运行一次。所以有2种方法可以考虑尝试:使用 post 方法提交表单可以使用该变量,但这里的优点是,它对客户端有点不友好。...// Get variable $chosenStudent if existedif (isset($_POST['chosenStudent'])) {&nbsp; &nbsp; $uid = $_POST['chosenStudent'];&nbsp; &nbsp; // Write your processing for new student here}...<script>&nbsp; &nbsp; b.addEventListener('change', function() {&nbsp; &nbsp; &nbsp; &nbsp; document.getElementById("myGroupSelectForm").submit();&nbsp; &nbsp; });</script>在 javascript 中处理所有内容。以下是您可能会考虑的代码流程。有 2 个不同的 php 文件:文件 A 和文件 B。您将所有复杂的过程移至文件 B在文件A中,你只需使用javascript,将ajax发送到文件B(获取数据或其他东西,用于渲染或计算目的)完成所有事情后,只需将表单提交到下一个流程
打开App,查看更多内容
随时随地看视频慕课网APP