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脚本。 预先感谢您的帮助
如何将表单发送到 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>