我正在用 ajax 做一個 PHP 表單,但是在初始化一個類時遇到了麻煩。我認為問題出在路徑上,我有一個帶有此表單的 addproduct.php,我不相信發布該表單會有所幫助,因為它沒有出現任何錯誤,但如果您認為是,請告訴我,以便我可以發布它。
專案基礎設施
這是我提交表單的地方(posproduct.js)
$(document).on('submit', '#product_form', function(){
var $form = $('#product_form');
var dados = $form.serialize();
$.ajax({
type: 'POST',
url: 'form.php',
async: true,
dataType: "html",
data: dados
}).done(function(msg){
window.location.href = "index.php";
}).fail(function(jqXHR, textStatus, msg){
alert(dados);
console.log(jqXHR, textStatus, msg);
});
return false;
});
在這里我輸入這個 try catch 但沒有得到這個錯誤,只有當我取出“//”(form.php)
<?php
//require_once("config.php");
include_once('/class/Book.php');
include_once('/class/DVD.php');
include_once('/class/Forniture.php');
saveProduct();
function saveProduct(){
$ok = 0;
try {
//http_response_code(405);
$book = new Book();
http_response_code(405);
$book->setDescription($size);
$book->setSku($sku);
$book->setName($name);
$book->setPrice($price);
$book->setType($type);
$book->insert();
http_response_code(401);
//$ok = 1;
} catch (Exception $e) {
//echo "$e";
}
我的書課
<?php
include_once('/class/Product.php');
class Book extends Product
{
public function setDescription(int $value)
{
$this->description = $value;
}
}
?>
我的產品類別
<?php
include_once('DAO.php');
abstract class Product
{
protected $sku;
protected $name;
protected $price;
protected $type;
protected $description;
public function getSku()
{
return $this->sku;
}
public function setSku($value)
{
$this->sku = $value;
}
public function getName(){
return $this->name;
}
public function setName($value)
{
$this->name = $value;
}
public function getPrice()
{
return $this->price;
}
public function setPrice($value)
{
$this->price = $value;
}
public function getType()
{
return $this->type;
}
public function setType($value)
{
$this->type = $value;
}
public function getDescription()
{
return $this->description;
}
abstract public function setDescription($value);
public function insert()
{
$dao = new Dao();
$result = $dao->query("INSERT INTO tb_produtos (sku, pname, price, ptype, pdescription) VALUES(:SKU, :NAME, :PRICE, :TYPE, :DESCRIPTION)", array(
":SKU"=> $this->getSku(),
":NAME"=> $this->getPname(),
":PRICE"=> $this->getPrice(),
":TYPE"=> $this->getType(),
":DESCRIPTION"=> $this->getDescription()
));
}
public function getList()
{
$dao = new Dao();
return $dao->select("SELECT * FROM tb_produtos ORDER BY id;");
}
public function __toString()
{
return json_encode(array(
"sku"=>$this->getSku(),
"name"=>$this->getName(),
"price"=>$this->getPrice(),
"type"=>$this->getType(),
"description"=>$this->getDescription()
));
}
}
?>
uj5u.com熱心網友回復:
在函式 setDescription 的類 Book 中,您使用 int 宣告傳遞的 Value 。在您的抽象類中,您沒有為值宣告型別。并且 php 會拋出錯誤。您可以在 Book Class Method 中洗掉型別或在抽象類中添加型別。但它可能不是int,是嗎?一個字串會更好。
更改
public function setDescription(int $value)
為:
public function setDescription($value)
uj5u.com熱心網友回復:
問題是在抽象公共函式 setDescription($value) 中缺少“int”;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/359829.html
