【发布时间】:2020-03-19 14:29:59
【问题描述】:
所以我正在尝试向 Ajax 提交表单,但看起来这个 Ajax 没有向我的 Json 发送任何内容,我测试了这个 Ajax 的结果,这是我在控制台中找到的消息“没有属性”。
这是表格:
<form id="formPrueba" method="POST">
<input type="text" id="film_id">
<input type="text" id="title">
<input type="submit" name="sub">
<button form="formPrueba" onclick="editar()"></button>
</form>
Ajax 函数:
function editar(){
event.preventDefault();
$.ajax({
method: "POST",
url: "prueba.php",
data: $("#formPrueba").serialize(),
dataType: "json"
})
// en caso de éxito
.done(function (response) {
// Escribe el mensaje recibido en el JSON descartando el contenido anterior
console.log("Response de Edit".response);
})
// En caso de fallo
.fail(function (jqXHR, textStatus, errorThrown) {
alert("Error: " + textStatus);
});
}
Json(测试):
<?php
echo ("Esto es prueba");
echo json_encode($_POST);
json:
<?php
include "class/Film.php";
require_once "class/DBSingleton.php";
//Json
$film_id = (isset($_POST['film_id'])? $_POST['film_id'] : null);
$title = (isset($_POST['title'])? $_POST['title'] : null);
$description = (isset($_POST['description'])? $_POST['description'] : null);
$release_year = (isset($_POST['release_year'])? $_POST['release_year'] : null);
$language_id = (isset($_POST['language_id'])? $_POST['language_id'] : null);
$original_language_id = (isset($_POST['original_language_id'])? $_POST['original_language_id'] : null);
$rental_duration = (isset($_POST['rental_duration'])? $_POST['rental_duration'] : null);
$rental_rate = (isset($_POST['rental_rate'])? $_POST['rental_rate'] : null);
$length = (isset($_POST['length'])? $_POST['length'] : null);
$replacement_cost = (isset($_POST['replacement_cost'])? $_POST['replacement_cost'] : null);
$rating = (isset($_POST['rating'])? $_POST['rating'] : null);
$special_features = (isset($_POST['special_features'])? $_POST['special_features'] : null);
$image = (isset($_POST['image'])? $_POST['image'] : null);
$last_update = (isset($_POST['last_update'])? $_POST['last_update'] : null);
switch ($_POST["action"]) {
case 'listado':
try {
$response["msg"]="Listado de las Peliculas.";
$response["success"]=true;
$response["data"]=Film::list();
} catch (Exception $e) {
$response["success"]=false;
}
echo json_encode($response);
break;
case 'insert':
try {
$response["msg"]="Insertar.";
$response["success"]=true;
$instanciaPelicula=new Film($film_id,$title,$description,$release_year,$language_id,$original_language_id,$rental_duration,$rental_rate,$length,$replacement_cost,$rating,$special_features,$image,$last_update);
$instanciaPelicula->insert();
} catch (Exception $e) {
$response["success"]=false;
}
echo json_encode($response);
break;
case 'delete':
try {
$response["msg"]="Eliminar.";
$response["success"]=true;
$instanciaPelicula=new Film($film_id);
$instanciaPelicula->delete();
} catch (Exception $e) {
$response["success"]=false;
}
echo json_encode($response);
break;
case 'update':
try {
$response["msg"]="Actualizar.";
$response["success"]=true;
$instanciaPelicula=new Film($film_id,$title,$description,$release_year,$language_id,$original_language_id,$rental_duration,$rental_rate,$length,$replacement_cost,$rating,$special_features,$image,$last_update);
$instanciaPelicula->update();
echo ($film_id.$title);
} catch (Exception $e) {
$response["success"]=false;
}
echo json_encode($response);
break;
case 'paginacion':
try {
$response["msg"]="Paginar.";
$response["success"]=true;
$peliculas=Film::paginacion();
} catch (Exception $e) {
$response["success"]=false;
}
echo json_encode($response);
break;
case 'select':
try {
$response["msg"]="Seleccionar.";
$response["success"]=true;
$response["data"]=Film::select($film_id);
} catch (Exception $e) {
$response["success"]=false;
}
echo json_encode($response);
break;
default:
# code...
break;
}
这个 Ajax 属于更新部分,我有一个从数据库更新对象的功能。
【问题讨论】:
标签: javascript php jquery ajax post