سلام
خسته نباشید
عذرمیخوام من یه سوالی داشتم
چطور میتونم همچین چیزی ایجاد کنم که روی هرکدام از اتاق ها که کلیک کنم اطلاعات مربوط به اون اتاق در قسمت بالا قرار بگیره؟
الان در قسمت بالای اتاق ها نام و لینک مربوط به اتاق اول قرار داره بطور ثابت
ولی من میخوام روی هرکدام از اتاق ها کلیک میکنم اطلاعات مربوط به اون اتاق بالا بیاد
ممنون میشم راهنماییم کنید🌺☘️🙏
سلام
باید از جاوااسکریپت (ترجیحا برای سادگی جی کوئری) یا لایو وایر و یا ajax استفاده کنید ...!
مستندات لایووایر و اگر هم به دوره لایووایر راکت دسترسی دارید می توانید استفاده کنید. چون بسیار از js راحتر هست
یک راهش همونطور که فرمودند اینه که بعد از کلیک بر روی اتاق درخواست ارسال بشه و مثلا اون تگ p که اطلاعات رو نمایش میده بر اساس اطلاعات دریافت شده آپدیت بشه ، که با لایو وایر و ajax قابل پیاده سازی است .
یک راه دیگه هم اینه که با بیاد همه اطلاعات همه اتاق ها رو به صورت جداگانه همون اول دریافت کنید و بریزیر هر کدام را داخل یک تگ p ، حالا با جاوااسکریپت بگید اگر مثلا روی اون div کلیک شد تگ p نمایش داده بشه که مثلا هم id اون هست .
امیدوارم واضح گفته باشم
فکر نمی کنم با یه سرچ ساده مشکلتون حل بشه. شما باید مفاهیم جاواسکریپت مربوط به درخواستهای ajax و روش استفاده از اون رو بدونید.
livewire و vuejs و Jquery ابزارهای این کار هستند.
نگاه کن علاوه بر راهکار دوستان یه راه دیگه هم داره میتونی اطلاعات هر اتاق رو از سرور بگیری و بریزی داخل یک متغیر js یا ارایه و بعد یه شرط بنویسی هروقت رو دکمه کلیک شد اطلاعاتش رو نشون بده ولی اگه اطلاعاتی که میخای نشون بده زیاد باشه کمی سرعت لود پایین میاد البته خیلی نیست و مشکل دوم برای دریافت اطلاعات بروز باید صفحه رو رفرش کنین ولی با ajax بدونه رفرش نشون داده میشه
بصوت ساده برات با جی کوئری توضیح بدم ، پیشرفته ترش هم میشه با نکاتی که دوستان گفتند انجام بدی
به اون قسمتی که میخوای نام 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);
}@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>
<button type="button" class="btn btn-outline-dark" onclick="selectRoom({{$room->id}})" >
اینجا توی رویداد onclick شما آیدی $room->id اتاق رو دادین => بجاش نام اتاق رو بدین
وقتی 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' ));
ایراد از این روتم نیست؟
سلام. همهچی رو خیلی پیچیده کردین. حتی خط 7 تا 9 کد که میشه اینطوری باشه:
Room::where('user_id', Auth::id())->get();
یه روت api بنویسین برای گرفتن اطلاعات اتاقها. یه روت بنویسین برای گرفتن اطلاعات یه اتاق مشخص. داخل ویو هم کد جاواسکریپت دارین که به محض لودشدن صفحه، لیست کل اتاقهارو بگیره. توی رویداد مربوط به کلیک روی باکس هر اتاق (فرضا یه class دادیم) روت دوم رو فراخوانی کنه و اطلاعاتی که توی ریسپانس برگشته رو جایی که میخوایین بذاره.
اینهارو سرچ کنین:
jquery ajax get
jquery onClick
jquery $(document).ready
jquery html() method