راکت

نمایش اتاق ها در لاراول

15 پاسخ

سلام
خسته نباشید
عذرمیخوام من یه سوالی داشتم
چطور میتونم همچین چیزی ایجاد کنم که روی هرکدام از اتاق ها که کلیک کنم اطلاعات مربوط به اون اتاق در قسمت بالا قرار بگیره؟
توضیح تصویر رو وارد کنید

الان در قسمت بالای اتاق ها نام و لینک مربوط به اتاق اول قرار داره بطور ثابت
ولی من میخوام روی هرکدام از اتاق ها کلیک میکنم اطلاعات مربوط به اون اتاق بالا بیاد

ممنون میشم راهنماییم کنید🌺☘️🙏

مشکات
مشکات
@meshkat315
ثبت پرسش جدید

پاسخ‌ها

15
سبحان مولایی
سبحان مولایی
@websaz

تخصص: برنامه‌نویس وب: Python :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native

سلام یا باید از javascript استفاده کنید یا لایووایر.

مشکات
مشکات
@meshkat315

تخصص: کاراموز

@websaz
میشه بیشتر راهنماییم کنید
یا اینکه لطفا میتونید کمکم کنید که چی سرچ کنم برای رسیدن به این جواب

شاید پاسخ شما همین‌جا باشد

علیرضا کفایتی
علیرضا کفایتی
@alirezakefayati

تخصص: برنامه نویس laravel, vue.js

سلام
باید از جاوااسکریپت (ترجیحا برای سادگی جی کوئری) یا لایو وایر و یا ajax استفاده کنید ...!

سبحان مولایی
سبحان مولایی
@websaz

تخصص: برنامه‌نویس وب: Python :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native

مستندات لایووایر و اگر هم به دوره لایووایر راکت دسترسی دارید می توانید استفاده کنید. چون بسیار از js راحتر هست

سبحان مولایی
سبحان مولایی
@websaz

تخصص: برنامه‌نویس وب: Python :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native

شما باید یک component درست کنید و عملیات مورد نظر را انجام بدید

علیرضا کفایتی
علیرضا کفایتی
@alirezakefayati

تخصص: برنامه نویس laravel, vue.js

یک راهش همونطور که فرمودند اینه که بعد از کلیک بر روی اتاق درخواست ارسال بشه و مثلا اون تگ p که اطلاعات رو نمایش میده بر اساس اطلاعات دریافت شده آپدیت بشه ، که با لایو وایر و ajax قابل پیاده سازی است .
یک راه دیگه هم اینه که با بیاد همه اطلاعات همه اتاق ها رو به صورت جداگانه همون اول دریافت کنید و بریزیر هر کدام را داخل یک تگ p ، حالا با جاوااسکریپت بگید اگر مثلا روی اون div کلیک شد تگ p نمایش داده بشه که مثلا هم id اون هست .

امیدوارم واضح گفته باشم

مشکات
مشکات
@meshkat315

تخصص: کاراموز

@websaz
@gomnam
خییییلی سخته
اگر میدونستم چی باید سرچ کنم انقدر سرچ میکردم تا به جواب برسم

سبحان مولایی
سبحان مولایی
@websaz

تخصص: برنامه‌نویس وب: Python :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native

فکر نمی کنم با یه سرچ ساده مشکلتون حل بشه. شما باید مفاهیم جاواسکریپت مربوط به درخواستهای ajax و روش استفاده از اون رو بدونید.
livewire و vuejs و Jquery ابزارهای این کار هستند.

امیر علی
امیر علی
@ajdar9667

تخصص: طراح و توسعه دهنده fullstack

نگاه کن علاوه بر راهکار دوستان یه راه دیگه هم داره میتونی اطلاعات هر اتاق رو از سرور بگیری و بریزی داخل یک متغیر js یا ارایه و بعد یه شرط بنویسی هروقت رو دکمه کلیک شد اطلاعاتش رو نشون بده ولی اگه اطلاعاتی که میخای نشون بده زیاد باشه کمی سرعت لود پایین میاد البته خیلی نیست و مشکل دوم برای دریافت اطلاعات بروز باید صفحه رو رفرش کنین ولی با ajax بدونه رفرش نشون داده میشه

امیر علی
امیر علی
@ajdar9667

تخصص: طراح و توسعه دهنده fullstack

اگر از vue یا ajax نمیخای استفاده کنی بهترین کار اونی هست ک گفتم

سیدعلی موسوی
سیدعلی موسوی
@juza66

تخصص: سی شارپ و پی اچ پی

بصوت ساده برات با جی کوئری توضیح بدم ، پیشرفته ترش هم میشه با نکاتی که دوستان گفتند انجام بدی

به اون قسمتی که میخوای نام Room رو بنویسه یک ایدی میدی به فرض من نوشتم room
و یک فاکشن مینویسی که نام room رو بگیره و به اون قسمتی که میخوای نام room نمایش بده append یا value رو تغییر میدی
و برای دگمه هات هم یک رویداد onclick مینویسی که فاکشن رو کال کنه و نام room خودش رو بهش پاس بده
توضیح تصویر رو وارد کنید


//room name
<label id="room"></label>

<button type="button" onclick="selectRoom(1)">Room 1</button>
<button type="button" onclick="selectRoom(2)">Room 2</button>
<button type="button" onclick="selectRoom(3)">Room 3</button>

function selectRoom(value){

    $("#room").val(value);

    //or

    $("#room").empty();
    $("#room").append(value);

    //or

    $("#room").text(value);

}
مشکات
مشکات
@meshkat315

تخصص: کاراموز

@juza66
سلام
واقعا ممنونم ازتون آقاسید
ممنون ک وقت گذاشتید
الان این کد رو نوشتم
اما مشکلی که هست اینه که به من آیدی رو نشون میده نه اسم اتاق رو😥


  <p class="ml-4" id="room">
                                Name:  {{$room->name}}
                            </p>

 <button type="button" class="btn btn-outline-dark" onclick="selectRoom({{$room->id}})" >
                                        {{$room->name}}
                                    </button>
                                    <script>
                                        function selectRoom(value){

                                            $("#room").val(value);

                                            //or

                                            $("#room").empty();
                                            $("#room").append(value);

                                            //or

                                            $("#room").text(value);

                                        }
                                    </script>

توضیح تصویر رو وارد کنید

سیدعلی موسوی
سیدعلی موسوی
@juza66

تخصص: سی شارپ و پی اچ پی

<button type="button" class="btn btn-outline-dark" onclick="selectRoom({{$room->id}})" >

اینجا توی رویداد onclick شما آیدی $room->id اتاق رو دادین => بجاش نام اتاق رو بدین

مشکات
مشکات
@meshkat315

تخصص: کاراموز

@juza66
توضیح تصویر رو وارد کنید

وقتی nameرو میذارم این ارور رو میده

Route::get('/', function (){
//    dd(auth()->user());
//    dd(auth()->check());
//    $rooms=Room::orderby('id' , 'desc')->get();
//    return view('index',compact('rooms'));
//    $room=Room::where('id', 7)->get($room=>name);
    $rooms=Room::where(function ($query){
        return $query->where("user_id",Auth::id());
    })->get();
//    simplepaginate(9);

    //To display the first room on each page
    $room=Room::first();
    return view('index',compact('rooms' , 'room' ));

ایراد از این روتم نیست؟

Muhammad
Muhammad
@muhammad

تخصص: Back-End Developer

سلام. همه‌چی رو خیلی پیچیده کردین. حتی خط 7 تا 9 کد که میشه اینطوری باشه:

Room::where('user_id', Auth::id())->get();

یه روت api بنویسین برای گرفتن اطلاعات اتاق‌ها. یه روت بنویسین برای گرفتن اطلاعات یه اتاق مشخص. داخل ویو هم کد جاواسکریپت دارین که به محض لودشدن صفحه، لیست کل اتاق‌هارو بگیره. توی رویداد مربوط به کلیک روی باکس هر اتاق (فرضا یه class دادیم) روت دوم رو فراخوانی کنه و اطلاعاتی که توی ریسپانس برگشته رو جایی که می‌خوایین بذاره.

این‌هارو سرچ کنین:
jquery ajax get
jquery onClick
jquery $(document).ready
jquery html() method

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام