زهرا سلطانپور
11 ماه پیش توسط زهرا سلطانپور مطرح شد
5 پاسخ

نحوه ی ارسال ارایه در فرم

سلام وقتتون بخیر
کسی میتونه کمکم کنه بگه چه طور میتونم یک ارایه رو به کمک فرم ارسال کنم
<input type="hidden" name="priceReng" id="priceRang" value="{{$priceRang}}">
این کد رو با متد post میزنم این ارور رو میده
htmlspecialchars(): Argument #1 ($string) must be of type string, array given
میدونم دلیلش {{}} بلید هست ولی نمی دونم چه طوری باید ارایه رو ارسال کنم


ثبت پرسش جدید
محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 11 ماه پیش مطرح شد
1

سلام
کسی داده ی ارایه توی فرم قرار نمیده برای یک input چون اصلا همچین input وجود نداره
مثلا چک باکس داریم با یک نام و مقادیر مختلف که به ازای هر داده باید یک آپشن داشته باشی دیگه که در نهایت داده ها سریالایز بشه ارایه بشه
شما هم نیاز داری با نام یک سان input بسازی و توی یه حلقه عمل ایجاد و قرار دادن نام و مقادیر رو انجام بدی که بعد ارسال داده ی فرم داشته باشی ( که اصلا پیشنهاد نمیشه و برای این کار از درخواست ajax مثلا استفاده میکنن و اصلا همچین داده ای توی فرم ایجاد نمیشه که نیاز بشه )
و توضیح اخرمم این که در جریان هستید که بلید لاراول یک بار و فقط در بارگزاری اولیه صفحه رندر میکنه و در هین کار اصلا کاری به کار اون کد ها نداره و انگار شما همچین چیزی دیگ نداری
حرفم اینه که هر مقداری در درخواست اول و بارگزاری صفحه داشته باشه متغییر $priceRang در پایان هم همون مقدار رو داره ( مگر اینکه صفحه رندر بشه که در لاراول ما نداریم اینو و در لایو وایر داریم livewire که اون هم اصلا نیاز به ارسال فرم به این شکل نداره و خیلی داده ها رو راحت ردو بدل میکنه یه جور حس اینو میگیری که همه ی درخواست ها ajax اما خیلی کد کمتر و تمیز ترو با سینتکس بکند خودمون )

حالا تهش چیزی که میخوایی به شکل زیر پیاده میشه که کار درستی نیست و یه جای کار میلنگه تو داستان به نظر
مثل کد زیر برای ساخت اینپوت و لینک رو هم ببین

<input type="text" name="qty[]" value="1" />
<input type="text" name="qty[]" value="2" />
<input type="text" name="qty[]" value="3" />
<input type="text" name="qty[]" value="4" />

این لینک رو هم یه نگاهی بزن

<input type="hidden" name="items[{{ $item->id }}][name]" value="{{ $item->name }}" />
<input type="hidden" name="items[{{ $item->id }}][price]" value="{{ $item->price }}" />

زهرا سلطانپور
@Zsoltanpour 11 ماه پیش آپدیت شد
1

از جواب کامل و جامع تون متشکرم
خیلی لطف کردین


محمد گل کار
تخصص : Auditor
@golkarm58 11 ماه پیش مطرح شد
0

با کسب اجازه از محضر استاد گرامی و تشکر از ایشون بابت پاسخ کاملشون
من هم یک مطلب کوچیک بگم و اون اینکه همونطور که در کدهای نمونه هم مشاهده میکنید برای نام input باید از فرمت آرایه استفاده میکردید تا با این Error روبرو نشید.


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 11 ماه پیش مطرح شد
1

@golkarm58
نه اون خطا که میگه باید مقدار ارایه پارس به رشته بشه و بعد در صفحه html قرار بگیره به نوع input کاری نداره مثل کد زیر

{{ json_encode($priceRang) }}

در نهایت هم که مقدار داده ای رشته بشه باز هم در بکند باید رشته تبدیل به ارایه بشه که مشکلات خودشو داره.


زهرا سلطانپور
@Zsoltanpour 11 ماه پیش مطرح شد
0

شاید یک کار غیر حرفه ای باشه ولی می تونیم تو action فرم ارایه رو با روت پاس بدیم😅


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

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