我在使用ajax和javascript的php中使用post方法,然后添加,然后给出erorr ..在此项目中,我被设置为类和模型,请帮助我如何解决此问题。.
Manufacturer.php
class Manufacturer {
private $table = 'manufacturer';
public function select() {
}
public function selectAll(){
$result = DB::select($this->table, ["id", "name"]);
return $result;
}
public function insert($columns = []) {
$result = DB::select($this->table, ["name"], "name = '$columns[name]'");
if(count($result) > 0) {
return "duplicate";
}
$result = DB::insert($this->table, $columns);
if($result) {
return "success";
} else {
return "failure";
}
}
}
在下面,我正在显示此项目中使用的js文件...
manufacturer.js
function addManufacturere() {
var manufacturer_name = $('#manufacturer_name').val().trim();
if(manufacturer_name == '') {
alert("Please input manufacturere name");
} else {
$.ajax({
'url':'services/add_manufacturer.php',
method: "POST",
data: {'name' : manufacturer_name},
success: function(data) {
switch(data) {
case 'success':
var msg = '<div class="alert alert-success text-center">';
msg += '<strong>Success!</strong> Manufacturer entry added successfully.';
msg += '</div>';
break;
case 'error':
var msg = '<div class="alert alert-danger text-center">';
msg += '<strong>Failed!</strong> Something went wrong, Please try again later.';
msg += '</div>';
break;
case 'duplicate':
var msg = '<div class="alert alert-warning text-center">';
msg += '<strong>Warning!</strong> Entry already exist.';
msg += '</div>';
break;
}
$('#alerts').html(msg);
$("#alerts").show();
$("#alerts").show().delay(5000).fadeOut();
}
});
}
}
我的add_manufacturer.php是我的服务,用于在添加时插入制造商的值,然后提供错误错误(正在检查类)。请帮助我解决错误。
add_manufacturer.php
require '../vendor/autoload.php';
$manufacturer = new Manufacturer();
echo $manufacturer->insert(["name"=>$_REQUEST["name"]]);
答案 0 :(得分:0)
要使用$ _REQUEST变量,您必须具有html或virtual formData()中的表单,该表单的方法等于GET和POST。您正在使用$ _REQUEST []无法访问的json格式数据结构。您可以通过将Manufacturer.js修改为-
function addManufacturere() {
var manufacturer_name = $('#manufacturer_name').val().trim();
if (manufacturer_name == '') {
alert("Please input manufacturere name");
} else {
var form = new FormData();
form.append('name', manufacturer_name);
$.ajax({
'url': 'services/add_manufacturer.php',
dataType: 'text',
type: "POST",
data: form,
success: function (data) {
switch (data) {
case 'success':
var msg = '<div class="alert alert-success text-center">';
msg += '<strong>Success!</strong> Manufacturer entry added successfully.';
msg += '</div>';
break;
case 'error':
var msg = '<div class="alert alert-danger text-center">';
msg += '<strong>Failed!</strong> Something went wrong, Please try again later.';
msg += '</div>';
break;
case 'duplicate':
var msg = '<div class="alert alert-warning text-center">';
msg += '<strong>Warning!</strong> Entry already exist.';
msg += '</div>';
break;
}
$('#alerts').html(msg);
$("#alerts").show();
$("#alerts").show().delay(5000).fadeOut();
}
});
}
}