[rtl][font="Tahoma"]
سلام دوستان
فایل js رو لود می کنم:
[/font][/rtl]
$this->registerJsFile(Yii::getAlias('@app') . '\jsAssets\addToCard.js',['position' => \yii\web\View::POS_END]);
[rtl][font="Tahoma"]
این کد هم داخلش نوشتم:
[/font][/rtl]
$(document).ready(function(){
alert('working');
});
[rtl][font="Tahoma"]
تنظیمات jquery هم اینطوری تنظیم کردم که قبل از کد خودم حتما لود شه(توی appAssets.php):
[/font][/rtl]
public $jsOptions = [
'position' => \yii\web\View::POS_HEAD,
];
[rtl][font="Tahoma"]
ولی بازم alert نمیاد
توی console هیچ خطایی ندارم
فایلم هم توی view source لود شده ولی کلیک می کنم روش نمیاد اما توی url وقتی pasteش می کنم درست هست
اینجوری لود شده، درسته یا باید طبق url باشه:
[/font][/rtl]
</script><script src="C:\xampp\htdocs\shopCenter\frontend\jsAssets\ addToCard.js"></script>
[rtl][font="Tahoma"]
ممنون
[/font][/rtl]
EmadGh
(Emadghasemi 2006)
2
[rtl] getAlias برای سمت سرور استفاده میشه و آدرس فایل رو برمیگرده برای کارهایی که میخوای توی سرور انجام بدی نه کلاینت
اگه میخوای this->registerJsFile فایلت رو توی وب نشون بدی Yii::$app->urlManager->baseUrl آدرس (URL) رو برمیگردونه…[/rtl]
$this->registerJsFile(Yii::$app->urlManager->baseUrl . '/jsAssets/addToCard.js',['position' => \yii\web\View::POS_END]);
[rtl][font="Tahoma"]
ممنون ولي يه سوال
يعني چي آدرس فايل
خوب اينم يه فايله كه ميخواد فراخواني بشه ديگه
ميشه مثال بزنيد
[/font][/rtl]
[rtl][font="Tahoma"]
يه سوال ديگه:
من اين كد رو دارم:
[/font][/rtl]
$(document).ready(function(){
$('a#add-to-card').on('click', function(e){
e.preventDefault();
$itemId = $(this).data('item-id');
$.ajax({
type: 'POST',
dataType: 'json',
url: '<?php Yii::$app->urlManager->createUrl(["master-category/addToCardAjax"]); ?>',
data: {'item-id': $itemId},
success: function(data){
console.log(data['count']);
},
});
});
});
[rtl][font="Tahoma"]
اينم اكشني كه دارم:
[/font][/rtl]
public function addToCardAjaxAction(){
$cardSession = new \yii\web\Session;
$cardSession->open();
if(!isset($cardSession['cardCount'][$_POST['item_id']]))
$cardSession['cardCount'][$_POST['item_id']] = 0;
else
$cardSession['cardCount'][$_POST['item_id']]++;
$this->renderPartial('addtocardajax');
//echo json_encode($cardSession);
}
[rtl][font="Tahoma"]
فايل view:
[/font][/rtl]
<?php
session_start();
echo json_encode(array('count' => count($_SESSION['cardCount'])));
[rtl][font="Tahoma"]
,وقتي نوع ديتا رو از حالت json درميارم كل سايتم رو برميگردونه ولي وقتي مي برم رو حالت json نه خطايي ميده و نه چيزي بر مي گردونه
يه سوال ديگه اينكه چرا بايد توي view خودم session_start رو صدا بزنم، وقتي session رو start نمي كنم پيغام ميده كه _SESSION رو نمي شناسه
ممنون
[/font][/rtl]