سلام خسته نباشید.
یه صفحه دارم که دیتا داخلش نمایش داده میشه و میخوام بصورت اتومامیک هر چند ثانیه بدون ریلود شدن صفحه اون بخش div به روز بشه.
از طریق این پرسش توی استک اوور تونستم این کارو انجام بدم ولی مشکلی که دارم این هستش که من توی حالت عادی از foreach بلید blade استفاده کردم و توش شرط گذاشتم. ولی توی پرسش استک حلقه برده توی جاوااسکریپت.
چه طوری بصورت کامل اون حلقه ای که نوشتم با اون حلقه ی جایگزاری کنم؟ چونکه حلقه ای که با خود blade نوشتم داخلش شرط گذاشتم و کلاس های مختلف واسه استایلش هم قرار داده شده.
ممنون میشم راهنمایی کنید.
سلام دوست عزیز
چون داری از blade استفاده میکنی و ارتباطات ajax نداری
خیلی راحت شما با استفاده از livewire میتونی این کار رو انجام بدی
دوره اموزشیش توی راکت هست و عالیه
اصلا بابتش نترس و نیازی نیست 100 درصدشو بفهمی در ابتدای کار
فقط نیازتو باهاش برطرف کن و باهاش بیشتر اشنا شو
ب شدت امکانات عالی ای داره
موفق باشی
سلام
باید از جاوا اسکریپت استفاده کنید ، blade سمت سرور رندر میشه و به سمت کاربر ارسال میشه و بعد از ارسال نمتیونه داده ها رو تغییر بدید باهاش
باید با استفاده از جاوا اسکریپت این کار رو انجام بدید واگر لازم هست که اطلاعات از سمت سرور خوانده بشه باید api بنویسد یا در هر حال route شما در لاراول پاسخ json برگردونه تا بشه توی جاوا اسکریپت به راحتی ازش استفاده کرد.
توی این مسئله باید از ajax استفاده کنید
فکر کنم این پاسخ میتونه کمکتون کنه
سلام دوست عزیز
چون داری از blade استفاده میکنی و ارتباطات ajax نداری
خیلی راحت شما با استفاده از livewire میتونی این کار رو انجام بدی
دوره اموزشیش توی راکت هست و عالیه
اصلا بابتش نترس و نیازی نیست 100 درصدشو بفهمی در ابتدای کار
فقط نیازتو باهاش برطرف کن و باهاش بیشتر اشنا شو
ب شدت امکانات عالی ای داره
موفق باشی
<script>
$(document).ready(function() {
setInterval(function() {
$("#data").load(window.location.href + " #data");
}, 3000);
});
</script>
برای حلقه از دستورات blade استفاده نکردم (ولی خوب باز فایل blade دیگه!) و کد بالارو اضافه کردم الان به روز میشه ولی مشکلی داره این هستش که کل دیتا میپره!
بنظرتون این لینک کارمنو راه میندازه؟
https://laravel-livewire.com/docs/2.x/polling
و یه چیز دیگه livewire توی پروژه اضافه کنم جاهای دیگه بهم نمیزه؟؟ الان کل کار با Blade هستش.
@salar.mohammad2013
سلام
poll مثل interval دوره ای رفرش میکنه
نه هیچ مشکلی با بقیه پروژت نداره و کاملا راحتی میتونی توی یه بخش کوچیک پروژت بزاریش مثلا توی یک کامپوننت معمولی غیر لایو وایری
باید ببینی نیازت چیه
شاید شما بهتر باشه ajax بزنی مثلا و رفرش کنی
بسته به پروژه ی خودتونه
@livewire()
اون کامپونتت ریترن میکنم.public function render()
{
$data = Data::orderBy('updated_at', 'ASC')->get();
return view('livewire.show-data', compact($data));
}
سلام به شما دوست عزیز.
اگه میخواین زمانی که دیتای جدید اضافه شد، بدون رفرش شدن صفحه دیتا جدید نمایش داده بشه باید از وب سوکت استفاده کنید.
موفق باشید.
اره dd گرفتم دیتارو میاره و اوکی هستش.
return view('livewire.show-data', compact($data));```
compact رو به شیوه اشتباهی نوشتید عزیز
نام متغییر در رشته و بدون علامت دلار بزار
کد زیر
public function render()
{
$data = Data::orderBy('updated_at', 'ASC')->get();
return view('livewire.show-data', compact('data'));
}
@rezajahangir
ایشون مشکلشون ریلود کردن داده هست
وب سوکت برای فهم این که چه زمانی نیاز به ارسال درخواست رفرش کردن داده داریم به کارشون میاد
فعلا در خود بروزرسانی داده بدون رفرش شدن صفحه مشکل دارن چون از ajax استفاده نمیکنن نیاز به livewire دارن.
خوب دستتون درد نکنه اون اوکی شد حالا دیتا میاد. و مشکل اصلی دیگه بصورت اتوماتیک لود نمیشه. اینو توی blade اصلی استفاده کردم.
<div wire:poll.750ms>
@livewire('show-data')
</div>
چه طوری میشه اوتامیک بعد از اضافه شدن دیتا اسکرول بشه به پایین صفحه. مثلا شما یه باکس چت در نظر بگیر هر چه قدر پیام میاد اسکرول میره به پایین صفحه/
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟