#ajax #cakephp #cakephp-3.0 #cakephp3
Вопрос:
У меня есть таблица категорий и подкатегорий, которые мне нужны, когда продукт добавляется и пользователь выбирает категорию по моему выбору, в следующем списке подкатегорий должны отображаться только те подкатегории, которые есть … Я использую ajah в своем admint.ctp, все кажется прекрасным, но мой контроллер не получает запрос ajah
$('#category_id').change(function(){
$('.typecategories-select').fadeIn('slow');
var category_data = $(this).val()
console.log(category_data)
$.ajax({
type: "POST",
url: '<?php echo $this->Url->build(['controller' => 'Products', 'action' => 'add','plugin'=>'admin']); ?>',
data: {category_id:category_data},
success: function(data){
console.log('AjaX Success')
// console.log(data)
},
error: function(){alert('AjaX Failed')}
});
});
}
//ProductsController
public function add()
{
if ($this->request->is('post')){
$a = 'ajax success';
echo $a;
}
if ($this->request->is('put')){
$a = 'ajax success';
echo $a;
}
if ($this->request->is('ajax')) {
$a = 'ajax success';
echo $a;
}
else{
echo $value = $this->request->getData('category_id');
echo $value;
$a = 'a';
echo $a;
//here only return $a after i change #category_id but its ajax request wtf?
}
if ($this->request->is('json')){
$a = 'ajax success';
echo $a;
}
}
Комментарии:
1. Проверьте URL-адрес, который Cake создает для вас из предоставленного массива. Убедитесь, что он выглядит так, как вы ожидаете, и что он «работает», когда вы пытаетесь получить доступ к нему напрямую в своем браузере, а не через Ajax.
2. @GregSchmidt не могли бы вы объяснить немного подробнее? я делаю этот запрос из своего макета с помощью плагина администратора
3. «Просмотреть источник» на странице, на которой указан код для вызова Ajax. Каков URL-адрес, который он создал для вас там? Какой URL-адрес вы там ожидаете?
4. Пожалуйста, отладьте свой код правильно, поставьте оператор exit после «echo», также отладьте запрос: вы будете знать точный метод запроса там. также проверьте вкладку «Сеть» браузера->запрос xhr : там вы узнаете, какие параметры, заголовки и т. Д. Отправляются.