PDA

View Full Version : کلیک پذیر شدن (حل شد)



>@>mehr
چهارشنبه 31 اردیبهشت 1393, 13:34 عصر
سلام
فرض کنید برای هر "بازیکن" یک صفحه جداگانه داشته باشیم,
حال وقتی کاربر میخواهد خبری از این "بازیکن" پست کند, میخام وقتی اسم بازیکن را
تایپ میکند, در صورت وجود صفحه برای بازیکن, اسم بازیکن به صورت کلیک پذیر بشود, اگر نه پیشنهاد ساختن صفحه به کاربر داده شود.
آیا این کار امکان پذیر است؟
پیشاپیش ممنون

MMSHFE
چهارشنبه 31 اردیبهشت 1393, 21:19 عصر
بله امکان پذیره. باید از AJAX و jQuery برای این مقاصد استفاده کنید. یکم روی منطقش فکر کنید، به راحتی میشه ساختش.

>@>mehr
چهارشنبه 31 اردیبهشت 1393, 22:38 عصر
میشه لطفا راجع به اینکه چطوری می‌شه پیشنهاد ساختن صفحه رو داد یه توضیحی بدین دستم بیاد ؟

MMSHFE
پنج شنبه 01 خرداد 1393, 08:51 صبح
ببینید، شما مثلاً یه چنین کاری میکنید با AJAX :

<script type="text/javascript">
$(document).ready(function() {
$("#name").keyup(function() {
$.ajax({
type: "post",
url: "<?php echo Yii::app()->createAbsoluteUrl("user/check"); ?>",
data: "name="+$("#name").val(),
success: function(result) {
if(result === "NONE") {
$("#names").html("<a href=\"<?php echo Yii::app()->createUrl("site/register"); ?>\">Register this name</a>");
}
else {
$("#names").html(result);
}
}
});
});
});
</script>
حالا توی کنترلر UserController این اکشن رو اضافه کنید:

public function actionCheck() {
if(!Yii::app()->request->isAjaxRequest || empty($_POST['name'])) {
return;
}
$users = User::model()->findAll('name LIKE :name', array(':name'=>'%' . $_POST['name'] . '%'));
if(!$users) {
echo 'NONE';
}
else {
foreach($users as $user) {
echo '<p>' . CHtml::encode($user->name) . '</p>' . PHP_EOL;
}
}
Yii::app()->end();
}
البته این یک مثال بود و میتونید هرجور نیاز دارین تغییرش بدین. فقط خواستم منطق کار دستتون بیاد.