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

问题描述 投票:0回答:1
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 脚本,然后更改数据库条目。我的问题是您是否可以将提交函数中的vals传递给表单中的Ajax函数,以及Ajax函数是否可以将数据发送到PHP脚本。 预先感谢您的帮助

javascript php ajax post get
1个回答
0
投票

如何将表单发送到 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>
© www.soinside.com 2019 - 2024. All rights reserved.