PDA

View Full Version : مشکل با javascript در Yii2



desatir7316
شنبه 01 آذر 1393, 19:44 عصر
سلام دوستان
فایل js رو لود می کنم:


$this->registerJsFile(Yii::getAlias('@app') . '\jsAssets\addToCard.js',['position' => \yii\web\View::POS_END]);


این کد هم داخلش نوشتم:


$(document).ready(function(){
alert('working');
});


تنظیمات jquery هم اینطوری تنظیم کردم که قبل از کد خودم حتما لود شه(توی appAssets.php):


public $jsOptions = [
'position' => \yii\web\View::POS_HEAD,
];


ولی بازم alert نمیاد
توی console هیچ خطایی ندارم
فایلم هم توی view source لود شده ولی کلیک می کنم روش نمیاد اما توی url وقتی pasteش می کنم درست هست

اینجوری لود شده، درسته یا باید طبق url باشه:



</script><script src="C:\xampp\htdocs\shopCenter\frontend\jsAssets\addTo Card.js"></script>


ممنون

MMSHFE
شنبه 01 آذر 1393, 23:57 عصر
هیچوقت خاصیت src و href رو بصورت فیزیکی ندین. باید بصورت URL باشه. مرورگر بنا به دلایل امنیتی از اجرا و ضمیمه کردن فایلهایی که مسیر فیزیکی دارن منع شده. بعلاوه وقتی روی هاست کپی میکنید، با اجرای اسکریت شما دنبال این فایلها توی کامپیوتر کلاینت میگرده.

desatir7316
یک شنبه 02 آذر 1393, 08:13 صبح
ممنون، اينجوري درست شد:

$this->registerJsFile(Yii::$app->urlManager->baseUrl . '/../jsAssets/addToCard.js', ['position' => \yii\web\View::POS_END]);


يه سوال ديگه:
من اين كد رو دارم:

$(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']);
},
});
});
});



اينم اكشني كه دارم:


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');
}



فايل view:


<?php
session_start();
echo json_encode(array('count' => count($_SESSION['cardCount'])));


,وقتي نوع ديتا رو از حالت json درميارم كل سايتم رو برميگردونه ولي وقتي مي برم رو حالت json نه خطايي ميده و نه چيزي بر مي گردونه
يه سوال ديگه اينكه چرا بايد توي view خودم session_start رو صدا بزنم، وقتي session رو start نمي كنم پيغام ميده كه _SESSION رو نمي شناسه

ممنون

desatir7316
دوشنبه 03 آذر 1393, 07:39 صبح
http://barnamenevis.org/showthread.php?476415-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D8%B3%D8%A7%D8%AE%D8%AA-%D8%A7%DA%A9%D8%B4%D9%86-%D8%AC%D8%AF%DB%8C%D8%AF-%D9%88-url-%D8%A2%D9%86-(%D8%AD%D9%84-%D8%B4%D8%AF)&p=2137080&viewfull=1#post2137080