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

whhtz7ly  于 2023-10-15  发布在  PHP
关注(0)|答案(1)|浏览(104)
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脚本。提前感谢你的帮助

bkhjykvo

bkhjykvo1#

如何将表单发送到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>

相关问题