[英]jQuery AJAX call to Slim Framework PHP function pass parameter as null
我正在尝试使用苗条的框架,当我执行POST输入记录时,绝对没有任何作用。 恐怕我将标识为null的参数传递给了我,因为如果我允许它在数据库中输入一个空记录。
这是mi Slim PHP。
$app-> post("/banda/", function() use($app){
$nombre=$app->request->post("nombre");
try{
$connection = getConnection();
$dbh = $connection->prepare("INSERT INTO banda VALUES(null, ?)");
$dbh->bindParam(1, $nombre);
$dbh->execute();
$banda = $connection->lastInsertId();
$connection= null;
$app->response->headers->set("Content-type","application/json");
$app->response->status(200);
$app->response->body(json_encode($banda));
}catch(PDOException $e){
echo "Error: " . $e->getMessage();
}
});
这是我的JS
var API_URI = "http://localhost/banda/";
function limpiar() {
$("#form-band input:first-child").val("");
}
function nombreBandaEsVacia() {
return ($("#form-band input:first-child").val().length == 0);
}
function getBandaJSON() {
return JSON.stringify({
nombre: getBandaNombre()
});
}
function getBandaNombre() {
return $("#form-band input:first-child").val();
}
$("#form-band input:last-child").on("click", function createBanda() {
if (nombreBandaEsVacia()){
alert("Oops! Completa el formulario!");
}else{
// 1.2 JSON.Stringify
var banda = getBandaJSON();
};
$.ajax({
type:'POST',
crossDomain: true,
url:API_URI,
data:banda,
dataType:"json",
beforeSend: function() {
console.log(banda);
},
success:function(response, banda) {
limpiar();
},
error:function(jqXHR, data, textStatus, errorThrown) {
console.log(data);
console.log(errorThrown);
console.log(jqXHR);
console.log(textStatus);
}
});
});
我的导航员这样说:
http://s2.subirimagenes.com/imagen/previo/thump_91447311.png
从外观上看,您正在将字符串而不是键值对发送给您的php脚本。
您可以使用类似:
data: {'my_banda_json': banda},
并尝试在服务器端对其进行解析,然后再尝试将其插入。
或者,您可以按照后端现在期望的方式发送所需的信息:
data: {'nombre': value_of_the_banda_name_field},
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.