PDA

View Full Version : کار با ajax در CodeIgniter



web333
یک شنبه 06 بهمن 1392, 17:35 عصر
سلام ، دوستان گرامی . میخاستم بدونم چگونه در این فریم ورک میتوانم با اجکس کار کنم؟

مثالی که زدم خیلی سادست .
این قسمت view هستش



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script type="text/javascript" src="<?php echo base_url() ?>/assets/jquery-1.10.1.js"></script>
<title>Untitled Document</title>
</head>

<body style="font-family:'B Koodak';font-size:13px">

<div id="ss">


</div>

</body>
</html>

<script type="text/javascript">


function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
//Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}

xmlHttp=GetXmlHttpObject();
// document.getElementById('imgquestion').innerHTML=i d;
//document.getElementById('imganswer').innerHTML=id;

url="/index.php/sdm"; // فکر می کنم مشکل در اینجا باشه
xmlHttp.onreadystatechange=state;
xmlHttp.open('GET',url,true);
xmlHttp.send(null);






function statet()
{

if (xmlHttp.readyState==4)
{
document.getElementById('ss').innerHTML=xmlHttp.re sponseText;

}

}


</script>

این هم قسمت کنتلر که فقط یک مقدار بر میگردونه



<?php


class Sdm extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this -> load -> library('grocery_CRUD');

}

public function index()
{

echo 'd';
}



}




?>



ممنوم میشم پاسخ بدید .. خیلی دنبالش گشتم ولی چیزی پیدا نکردم. اگر کلا راه حلم غلطه اصلاح شدشو بفرمایی. با تشکر

engmmrj
یک شنبه 06 بهمن 1392, 19:38 عصر
روش خاصی نداه CI برای ajax ! باید بیاد بر اساس آدرس کنترلرل و اکشن آدرس بدید فقط یک نکته * اگر csrf را true کردین و میخواید پرامتر ها را بصورت post بفرستین باید یک token به ajax اضافه کنید که به مشکل نخورید اگر که هم از get استفاده میکنید به این کار ها نیاز نیست و بهتون پیشنهاد میکنم از ajax jquery استفاده کنید . و اینم یک نمونه که خودم در framework ci استفاده میکنم .



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ajax</title>
</head>


<script>var site_url = '<?php echo base_url()?>'; var token_csrf = '<?PHP echo($_COOKIE['csrf_cookie_name']);?>'; </script>

<script type="text/javascript">

$(function(){

$.ajax({
type:"POST",
url:site_url+'controller/action',
data:{site : 'http://ariasilver.com', csrf_test_name : token_csrf} ,
success: function(data) {
// some code
}
})


})

</script>
<body>
</body>
</html>

web333
یک شنبه 06 بهمن 1392, 20:19 عصر
دسته شما درد نکنه ولی الان می خوام نتیجه ی کار رو ببینم باید چیکار کنم. ؟ در ضمن چون با این روش ajax کار نکردم نمیدونم date و success چی هستند .

اگر میشه از سمت کنتللر هم یه مثال بزنید.

engmmrj
یک شنبه 06 بهمن 1392, 22:58 عصر
Controller احتیاج به تغییر زیادی نداره ، data مقادیر ارسالی هستن و کدهای داخل success هم موقعی اجرا میشه که ajax بخوبی کار کرده باشه ، کافیه یک بار خودتون تست کنید تا متوجه شوید .