Я искал ответы на различные вопросы по проблеме codeigniter ajax post и не смог найти решение моей проблемы. Я пытаюсь сделать простой запрос ajax для изменения innerHTML элемента для тестирования просто для того, чтобы увидеть, работает ли ajax, и если я иду по правильному пути. Я тестировал функцию $ .post отдельно, и он работает, поэтому мой синтаксис jquery в порядке, но я думаю, что проблема кроется в url: свойство в функции при использовании с кодом.пытается сделать простой запрос ajax в codeigniter
Вид/header.php:
<?php
if(!empty($product)){
$pid=$product[0]['product_id'];
}
?>
<script>
$(document).ready(function(){
$('.add_to_basket').click(function(){
$.ajax({
type: 'POST',
url: '<?=base_url()."cart_c/myfunk/".$pid?',
',
data: { somedata: 123456 },
success: function(data) {
$("#result").html(data);
},
error:function(){
alert("error");
}
});
});
});
</script>
Контроллер/products.php:
<?php
class Products extends CI_Controller{
function __construct(){
parent::__construct();
$this->load->model('catalogue_model');
$this->load->model('products_model');
$this->load->model('basket_model');
}
function product($id){
$kitties['cats']=$this->catalogue_model->get_categories();
$data['product']=$this->products_model->get_product($id);
$data['active_button']=$this->basket_model->activeButton($id);
$this->load->view('header',$data);
$this->load->view('sidebar',$kitties);
$this->load->view('product',$data);
$this->load->view('footer');
}
}
?>
модель/basket_model.php:
<?php
class Basket_model extends CI_Model{
function activeButton($sess_id){
if(isset($_SESSION['basket'][$sess_id])){
$id=0;
$label="<img src='".base_url()."images/remove.png' />";
}else{
$id=1;
$label="<img src='".base_url()."images/add.png' />";
}
$out="<a href='#' class='add_to_basket' rel='".$sess_id."_".$id."'>".$label."</a>";
return $out;
}
}
?>
Вид/product.php:
<div class="contentwrap">
<div id="content_area">
<?php if(!empty($product)){
foreach($product as $p){
?>
<h1><?=$p['product_name']?></h1>
<div id="product_image">
<img src="<?=base_url()?>/images/<?=$p['image']?>" width="400" height="300" />
</div>
<div id="product_desc">
<?=$p['description']?>
<br><br>
<?=$active_button?>
</div>
<?php
}
}else{
echo "Product unavailable";
}?>
<p id="result"></p>
</div>
</div>
контроллер/cart_c.php:
<?php
class Cart_c extends CI_Controller{
function __construct(){
parent::__construct();
$this->load->model('catalogue_model');
$this->load->model('products_model');
$this->load->model('basket_model');
}
function myfunk($id){
$some=$_POST['somedata'];
echo $some;
$kitties['cats']=$this->catalogue_model->get_categories();
$data['product']=$this->products_model->get_product($id);
$data['active_button']=$this->basket_model->activeButton($id);
$this->load->view('header',$data);
$this->load->view('sidebar',$kitties);
$this->load->view('product',$data);
$this->load->view('footer');
}
}
?>
Помощь кто-нибудь?
Вы сделать запрос на cart_c/myfunk пока эта функция ничего не возвращает полезно для запроса ajax. Вам нужно вернуть html/json/xml из контроллера и указать, что вы ожидаете в запросе: dataType: 'json' – Philip
@Philip Я поместил dataType: 'json' в функцию $ .ajax и echo json_encode ($ немного); в моем контроллере, и теперь я получаю предупреждение с сообщением «error» – admir
@Philip ok, я изменил dataType на «html», и теперь он работает. Спасибо, что указали мне в правильном направлении – admir