PDA

View Full Version : محل قرار گیری جی کوئری



mah.tab
دوشنبه 12 خرداد 1393, 11:15 صبح
سلام
میخام بدون رفرش شدن سایت بتونم فرم رو آپدیت کنم, سوالم این هست که کد جی کوئری رو باید کجا قرار بدم ؟
تو ویو مدل کنترولر کجا :لبخند:

MMSHFE
سه شنبه 13 خرداد 1393, 11:01 صبح
توی ویو باید کدتون رو اینطوری اضافه کنید:

Yii::app()->clientScript->registerScript(...);

mah.tab
سه شنبه 13 خرداد 1393, 17:48 عصر
<script type="text/javascript"> //Run function when button is clicked
$(document).ready(function () { $("#idOfButton").live('click', function () { doSomething(); }); });
//The function I want ran when page visitor clicks button
function doSomething() { //Do Something }</script>


مثلا بخام این کد را قرار بدم باید داخل پرانتز بزارم؟


فانکشن رو تو مدل باید تعریف کنم؟

MMSHFE
سه شنبه 13 خرداد 1393, 18:06 عصر
این کد رو توی ویو بنویسید:

Yii::app()->clientScript->registerScript('
function doSomething() {
//Do Something
}
$(document).ready(function () {
$("#idOfButton").on("click", function () {
doSomething();
});
});
');
اگه تابع موردنظرتون (doSomething) یک تابع جاوا اسکریپت هست، همونجا باید تعریفش کنید ولی اگه میخواین یک تابع PHP صدا زده باشه، باید بصورت یک اکشن از کنترلر مربوطه تعریفش کنید و با AJAX صداش بزنید. برای مثال:
UserController :

public function actionCheckName($name) {
if(!Yii::app()->request->isAjaxRequest) {
return;
}
$user = User::model()->findByAttributes(array('name'=>$name));
echo 'User ' . ($user ? 'exists' : 'does not exist');
}
و حالا توی ویو اینطوری کار کنید:

Yii::app()->clientScript->registerScript('
$(document).ready(function () {
$("#idOfButton").on("click", function () {
$.ajax({
type: "get",
url: "' . Yii::app()->createAbsoluteUrl('user/checkname') . '",
data: "name="+$("#name").val(),
success: function(result) {
$("#msg").html(result);
if(result !== "User does not exist") {
$("#submit").attr("disabled", "disabled"),
}
else {
$("#submit").removeAttr("disabled");
}
}
});
});
});
');