با سلام دوستان
من یک کوئری برای find کردن دارم که در قسمت جاوا اسکریپت اجرا میشه
حالا مقدار Id برای find کردن باید از یک var خونده بشه
ممنون میشم دوستان نمونه کوئری ارسال بفرستن
//تمام کد ها
<script type="text/javascript">
$(document).ready(function(){
var potentials = document.querySelectorAll("[class*=select-color-item-]");
console.log(potentials.length);
elementLoop:
for (var i = 0; i < potentials.length; i++) {
var potential = potentials[i];
console.log(potential);
classLoop:
for (var j = 0; j < potential.classList.length; j++) {
if (potential.classList[j].match(/^select-color-item-/)) {
var dddd = potential.classList[j];
var eeee = dddd.replace('select-color-item-', '');
// در خط بعد، قصد پیدا کردن یک مقدار را از دیتابیس توسط لاراول داریم
// منتها نمی دونم چطوری مقدار eeee رو داخل کوئری بنویسم
potential.style.background = '{{ \App\ProductShopSell::find(eeee)->color }}';
continue elementLoop;
}
}
}
});
</script>
من میخوام مقدار var eeeee رو که یک عدد هست به کوئری لاراولیم بدم
var eeee = dddd.replace('select-color-item-', '');
و کوئریم داخل javascript این هست :
potential.style.background = '{{ \App\ProductShopSell::find(eeee)->color }}';
خیلی خیلی ممنونم
@TimeRunner2359
@ashkannazari248
@masoudproton
@milad
@ali.bayat
@Alimotreb
@hesammousavi
@endworld
@code2code
@khanzadimahdi
@info.aligraph
@SeyedMH.Mosavi
@miladboshagh
سلام و وقت بخیر
با توجه به اینکه از جیکوئری استفاده میکنید، کار بسیار راحته
متاسفانه من به سیستم دسترسی ندارم ، اگر شد انشاالله فردا جواب میدم
موفق و سلامت باشید
یا حق
سلام این یه روش اشتباهی هست که در بلید شما بخوای کوئری بزنی قانون mvc اینطوری نیست. تا حد امکان باید این کار انجام نشه . شما میتونی مقادیرو از کنترلر در قالب یه آرایه بفرستی به بلید در درکد بالا مقادیرو جایگزین کنی.
بعدشم شما اینجا در این حالت نمی تونی کوئری بزنی چون با این روش شما هیچ کوئری در سمت کلاینت زده نمیشه که هیچ، و وقتی هم که در سرور این کدتوسط سرور پردازش میشه برنامه خطا داره بخاطر اینکه چون کد js در سرور اجرا نمیشه که بخوای مقدارشو به متد find بدی و داده دریافت کنی. کدهای js نمی تونه به کوئری لاراول مقدار بده.
ابتدا تمام کدهای لاراول در سرور اجرا میشه و سرور کد js رو نمیشناسه و نمیتونه اجراش کنه(به جز نود جی اس)
برای همین کوئری شما در اینجا دچار خطا میشه.
راه معقولش این می تونه باشه که شما با اون مقادیرو که میخوای کوئری بزنی از کنترلر بخونی و بعد بدی به ویو و در کدهای جی اس ادغام کنی(مقادیرشو جایگزین کنی) بعد که این کد جی اسی به کلاینت همون مرورگر کاربر می رسه شروع میکنه به اجرا شدن و شما نتایج اجرا رو میتونی ببینی. نکته اینجاست که شما با اجرای کد جاوا اسکریپتی نمی تونی به کوئری لاراول مقدار بدی تا اجرا بشه چون اون سمت اصلا کد جی اسی اجرا نمیشه و اینجا تنها مقدار eee به متد find داده میشه و برنامه دچار خطا میشه. درست این است که مقدار eee رو داخل کنترلر بخونی و به ویو بدی بعد داخل ویو اون مقادیرو به این پروپرتی بدی
potential.style.background
با این صحبت هام یه خورده فکر کن راهشو پیدا میکنی.
@miladboshagh
@hosseinshirinegad98
واقعا موافقم
منم تجربه این رو داشتم که بخوام همه کار رو توی فرانت و با جاوااسکریپت انجام بدم و واقعا یجوری ضرب خوردم که نگو 😂
@miladboshagh
به شما هم همین پیشنهاد آقای شیرینژاد رو میکنم ، بهتره تمامی مقادیر رو با کنترلر بگیرید و به ویو پاس بدید
موفق و سلامت باشید
یا حق
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟