ajax 在 CakePHP 2.7 中请求但未能 return 数据
ajax request in CakePHP 2.7 but failed to return data
我正在尝试执行 ajax 请求,当 link 是点击传递 ID 值时。并尝试在成功时提醒数据。请告诉我哪里出了问题。我想在 view.ctp 中显示数据,然后在 ajax 请求
之后将其加载到 index.ctp
$('a.view-btn').on('click', function(e){
var view = $(this);
var id = view.data('id');
var href = view.attr('href');
$.ajax({
url: href,
type: 'POST',
data: {product_id: id},
success: function(data) {
alert(data);
$('div#view-contact').load(href + ' .view-contact');
}
});
console.log(id);
});
这是我在控制器中的编辑方法
public function view($id) {
if ($this->request->is('ajax')) {
$this->autoRender = false;
$this->set('contact', $this->request->data('product_id'));
echo "AJAX SUCCESS";
} else {
$this->set('contact', $this->Contact->findById($id));
}
}
use e.preventDefault().It will stop your page to refresh
$('a.view-btn').on('click', function(e){
e.preventDefault();
var view = $(this);
var id = view.data('id');
var href = view.attr('href');
$.ajax({
url: href,
type: 'POST',
data: {product_id: id},
success: function(data) {
alert(data);
$('div#view-contact').load(href + ' .view-contact');
}
});
console.log(id);
});
我尝试在 ajax
中添加 dataType: 'json'
$('a.view-btn').on('click', function(e){
var view = $(this);
var id = view.data('id');
var href = view.attr('href');
$.ajax({
url: href,
type: 'POST',
dataType: 'json',
data: {product_id: id},
success: function(data) {
$('div#view-contact').load(href + ' .view-contact');
}
});
e.preventDefault();
});
并且在我的视图方法中我echo json_encode($contact)
。并且有效。
public function view($id) {
if ($this->request->is('POST')) {
$this->autoRender = false;
$contact = $this->request->data('product_id');
$this->set('contact', $contact);
echo json_encode($contact);
} else {
$this->set('contact', $this->Contact->findById($id));
}
}
但是代码中有一部分我不明白。当我尝试 echo "ajax success";
时,这意味着我的 ajax 请求成功了吗?那为什么当我尝试使用 jquery $().load(href + ' .view-contact')
?
加载我的视图内容时,为什么我不能加载它?
我正在尝试执行 ajax 请求,当 link 是点击传递 ID 值时。并尝试在成功时提醒数据。请告诉我哪里出了问题。我想在 view.ctp 中显示数据,然后在 ajax 请求
之后将其加载到 index.ctp$('a.view-btn').on('click', function(e){
var view = $(this);
var id = view.data('id');
var href = view.attr('href');
$.ajax({
url: href,
type: 'POST',
data: {product_id: id},
success: function(data) {
alert(data);
$('div#view-contact').load(href + ' .view-contact');
}
});
console.log(id);
});
这是我在控制器中的编辑方法
public function view($id) {
if ($this->request->is('ajax')) {
$this->autoRender = false;
$this->set('contact', $this->request->data('product_id'));
echo "AJAX SUCCESS";
} else {
$this->set('contact', $this->Contact->findById($id));
}
}
use e.preventDefault().It will stop your page to refresh
$('a.view-btn').on('click', function(e){
e.preventDefault();
var view = $(this);
var id = view.data('id');
var href = view.attr('href');
$.ajax({
url: href,
type: 'POST',
data: {product_id: id},
success: function(data) {
alert(data);
$('div#view-contact').load(href + ' .view-contact');
}
});
console.log(id);
});
我尝试在 ajax
dataType: 'json'
$('a.view-btn').on('click', function(e){
var view = $(this);
var id = view.data('id');
var href = view.attr('href');
$.ajax({
url: href,
type: 'POST',
dataType: 'json',
data: {product_id: id},
success: function(data) {
$('div#view-contact').load(href + ' .view-contact');
}
});
e.preventDefault();
});
并且在我的视图方法中我echo json_encode($contact)
。并且有效。
public function view($id) {
if ($this->request->is('POST')) {
$this->autoRender = false;
$contact = $this->request->data('product_id');
$this->set('contact', $contact);
echo json_encode($contact);
} else {
$this->set('contact', $this->Contact->findById($id));
}
}
但是代码中有一部分我不明白。当我尝试 echo "ajax success";
时,这意味着我的 ajax 请求成功了吗?那为什么当我尝试使用 jquery $().load(href + ' .view-contact')
?