是否可以像这样将数据发送到 PHP Skript (AJAX)?

Is it possible to send Data to a PHP Skript like this (AJAX)?

提问人:grotivanhelden 提问时间:10/6/2023 更新时间:10/6/2023 访问量:30

问:

methods: {
        ajax: function (task, callback, variables) {
            let xhr = new XMLHttpRequest();
            let send = "&variables=" + encodeURIComponent(variables);
            // console.log(variables[0], variables[1], variables[2], variables[3], variables[4]);
            xhr.open("GET", "db_data.php?task=" + encodeURIComponent(task) + send, true);
            xhr.onreadystatechange = () => {
                if (xhr.readyState === XMLHttpRequest.DONE){
                    let json = JSON.parse(xhr.responseText);
                    callback(json); // Um Tabelle anzuzeigen
                    console.log(json);
                }
            }
            xhr.send(null);
        }

submit: function () {
            document.querySelector(app.selectors.ids.absenden).addEventListener("click", (e) => {
                e.preventDefault();
                let vals = [
                    document.querySelector(app.selectors.ids.projektnummer).value,
                    document.querySelector(app.selectors.ids.beschreibung).value,
                    document.querySelector(app.selectors.ids.startdatum).value,
                    document.querySelector(app.selectors.ids.enddatum).value,
                    document.querySelector(app.selectors.ids.budget).value
                ];
                app.methods.ajax(app.task.create_project, () => {}, vals)

            });
        }
    }

该代码是程序的摘录,在本例中,该程序将键入到表单中的数据发送到 PHP 脚本,然后更改数据库条目。我的问题是您是否可以将 submit 函数中的 vals 以表单形式传递给 Ajax 函数,以及 Ajax 函数是否可以将数据发送到 PHP 脚本。 提前感谢您的帮助

javascript php ajax post get

评论

0赞 Professor Abronsius 10/6/2023
您可能希望使用 JSON 对变量进行编码,但也考虑使用 api 而不是 XMLHttpRequest ~ 它更强大、更灵活JSON.stringifyfetch
0赞 ADyson 10/6/2023
whether you can pass vals in the submit function to the Ajax function...这段代码已经在这样做了。...这段代码也已经在这样做了(你还没有发送任何东西,但你有希望看到发送其他变量是如何完成的,然后复制它)。对代码进行一些敷衍的调试会证明这一点,即使您从阅读中并不完全确定。并且必须有 1001 个在线教程已经演示了相同的功能。那么你的问题到底是什么?whether the Ajax function can then send the data to the PHP scriptvariables
0赞 Professor Abronsius 10/6/2023
命名变量也比简单的值数组更有意义 - 服务器上没有办法知道什么是什么
0赞 grotivanhelden 10/6/2023
问题是我如何访问PHP脚本中的数据@ADyson
0赞 ADyson 10/6/2023
那你为什么不问这个问题呢?如上所示,在 URL 的查询字符串中发送的变量在 PHP 中始终通过 $_GET 进行访问。如果您发送 POST 请求并将数据放入请求正文中,那么您可以通过 $_POST 访问它 - 同样,这是您可以在任何相关教程或 PHP 手册中阅读的标准信息。

答:

0赞 Jordy 10/6/2023 #1

如何向 PHP 发送表单的小示例

我能够使用 post 方法不对文本字符串进行编码。

首先创建脚本函数

   <script>
   function sendText(){
   var txt = document.getElementById("txt").value;
   var dataForm = new FormData();
   dataForm.append('task',txt);
   jQuery.ajax({
   url: "/db_data.php?",
   contentType: false,
   processData: false,
   data: dataForm,
   type: "POST", success:function(data){ }
   }); return true;
   }
   </script>

而 php 部分通过将接收到的文本插入数据库来处理它

    <?php
     $host = "localhost:3306";
     $dbuser = "root";
     $dbpwd = "password";
     $db = "my_db";
   
   $txt = $_POST['task'];
   $conf = mysqli_connect($host, $dbuser, $dbpwd, $db);
   mysqli_query($conf,"INSERT INTO my_table (text) VALUES ('$txt')") or die("".mysqli_connect_error()."");
    ?>

在 HTML 中

   <form action="" method="post">
   <textarea id="txt"></textarea>
   <input type="button"  onclick="return sendText();" value="Send"/>
   </form>