php oop jquery ajax:未定义索引
如何解决未定义的索引错误?请参阅下面的代码 论产品类别php oop jquery ajax:未定义索引,php,jquery,ajax,Php,Jquery,Ajax,如何解决未定义的索引错误?请参阅下面的代码 论产品类别 public function add(){ var_dump($_POST); $pname = $_POST['pname']; echo $pname; } ajax代码: $('#productsform').on('submit', function(event){ event.preventDefault(); var data = $('#productsform').serializ
public function add(){
var_dump($_POST);
$pname = $_POST['pname'];
echo $pname;
}
ajax代码:
$('#productsform').on('submit', function(event){
event.preventDefault();
var data = $('#productsform').serialize();
$.ajax({
url:'action.php',
data: {'action': 'add', 'data': data},
type: 'post',
success: function(response) {
console.log(response);
}
});
});
这里是action.php
include_once('classes/Products.php');
$product = new Products();
if(isset($_POST['action'])){
if($_POST['action'] == 'add'){
$product->add();
exit();
}
}
现在,控制台日志中的输出:
array(2) {
["action"]=>
string(3) "add"
["data"]=>
string(29) "pname=asdadsad&pprice=&pdesc="
}
<br />
<b>Notice</b>: Undefined index: pname in <b>D:\xampp\htdocs\prince2\classes\Products.php</b> on line <b>25</b><br />
数组(2){
[“行动”]=>
字符串(3)“添加”
[“数据”]=>
字符串(29)“pname=asdadsad&pprice=&pdesc=”
}
注意:第25行的D:\xampp\htdocs\prince2\classes\Products.php中的未定义索引:pname
我已经键入“asdadsad”作为命名pname的输入
请帮助更改如下内容:
$('#productsform').on('submit', function(event){
event.preventDefault();
var data = $('#productsform').serialize(); // pass action in hidden field
$.ajax({
url:'action.php',
data: data,
type: 'post',
success: function(response) {
console.log(response);
}
});
});
谢谢你,一切正常,所有文本框的未定义索引都消失了。。但select选项的未定义索引仍然显示在控制台日志上。我的表单由3个texbox 2个选择选项和1个输入类型文件组成。这意味着您需要在codehi ahmed中声明选择选项变量。我认为.serialize()将在具有name属性的表单中获取标记的所有值,因此我怀疑.serialize()无法获取选择选项标记。您可以将该数据添加为$(“#productsform”).serialize()+”&moredata=“+morevalue