我正在为我的作业构建学校数据库。据我所知,我在从PHP接收JSON对象时遇到问题。我设法将数据发送到我的PHP文件。我想返回它作为对Ajax调用的响应。我在Firefox控制台上收到了一个错误消息“此请求无可用响应数据”。感谢您的帮助。
index.html:
<form class="ajaxForm" method="post" action="./Controller/CourseController.php">
Custom.js:
$(document).ready(function () {
console.log("ready!");
$('body').click('submit', '.ajaxForm', function (e) {
e.preventDefault();
var form = $(this)[0];
var formData = new FormData(form);
formData.append('submit', $('.submitted-button').attr('name'));
var dataArray = {
id: '111',
title: 'foo'
};
var jsonString = JSON.stringify(dataArray);
function returnwasset(){
$.ajax({
type: $(this).attr('method'),
dataType: 'json',
url: $(this).attr('action'),
data: jsonString,
// THIS MUST BE DONE FOR FILE UPLOADING:
contentType: false,
processData: false,
success: function () {
alert(response);
CourseController.php
<?php
include '../Service/DbTableCourse.php';
$link = connectToDatabase();
$sql = "SELECT * from courses";
$rows = $link->query($sql);
echo json_encode($action);
$action = $_GET['action'];
if ($action == 'C') {
createCourse();
}
if ($action == 'R') {
readCourse($_GET['id']);
}
if ($action == 'U') {
updateCourse($_GET['id']);
}
if ($action == 'D') {
deleteCourse($_GET['id']);
}
function createCourse() {
$title = htmlspecialchars($_GET['title']);
$sql = "INSERT INTO courses (title) values ('$title')";
$link = connectToDatabase();
$val = $link->query($sql);
if ($val) {
header('location: ../index.html');
} else {
echo "error";
}
}
function readCourse($id) {
$sql = "SELECT * from courses where id ='$id'";
$link = connectToDatabase();
$rows = $link->query($sql);
$row = $rows->fetch_assoc();
return $row['title'];
}
function updateCourse($id) {
echo $id;
}
function deleteCourse($id) {
echo $id;
}
答案 0 :(得分:0)
您可以使用JS代码中设置的POST
方法发送数据:
$.ajax({
type: $(this).attr('method'),
(...)
<form>
的“方法”属性设置为“ POST”。
PHP脚本正在等待“ GET”数据,因此您必须将$_GET
替换为$_POST
。
答案 1 :(得分:0)
此“响应”必须来自成功函数:
代替此:
success: function () {
alert(response);
尝试一下:
success: function (response) {
alert(response);
正如@Thierry Leroux所说,将PHP请求从$_GET[
更改为$_POST[