۸ محمد خضرپور
preview-data
امیر صالحی حل شده توسط امیر صالحی

به هنگام وارد کردن اطلاعات php در کد‌های جاوا اسکریپت به ارور میخ.رم به وجود اینکه همه جا دیدم همینطوری وارد میکنند

تصویر کد رو ضمیمه کردم 

اینم خطایی که تو کنسول باهاش برخورد میکنم

Uncaught SyntaxError: Unexpected token '<'

درود

سینتکس php داخل جاوااسکریپت نامعتره و شما همچین خطایی رو میگیرید، برای اینکه کار کنه باید داخل دابل کوتیشن بزارید ‘ ’

 

مثل

<script>var test = '<?php echo $variable; ?>';</script>
امیر صالحی ۰۵ مرداد ۱۴۰۰، ۱۷:۱۳

اقای صالحی با تک کوتیشن دابل با هرچی امتحان میکنم با این خطا موجه میشم خود کد گاها کار میکنه ولی جلوی کدهای دیگه jquery رو میگیره 

محمد خضرپور ۰۵ مرداد ۱۴۰۰، ۲۰:۰۳

کسی هست در این مورد کمکی بکنه 

محمد خضرپور ۰۸ مرداد ۱۴۰۰، ۱۹:۵۵

لطفا کل پروژه رو زیپ کنید و ارسال کنید

امیر صالحی ۱۰ مرداد ۱۴۰۰، ۱۵:۵۲
محمد خضرپور ۱۰ مرداد ۱۴۰۰، ۱۶:۰۶

داخل scriptتون میتونید برای مثال نمونه کد زیر رو بزارید

<?php if ($location) : ?>
            L.marker([<?= $location->lat ?>, <?= $location->lng ?>]).addTo(map).bindPopup("ّ<?= $location->title ?>").openPopup();
        <?php endif; ?>
امیر صالحی ۱۰ مرداد ۱۴۰۰، ۱۶:۲۳
Uncaught SyntaxError: Unexpected token '<'
محمد خضرپور ۱۰ مرداد ۱۴۰۰، ۱۷:۴۹

به خاطر اینکه متغیر $previewData داخل شرط تعریف شده به خاطر همین تا زمانی شرط اجرا نشه اون متغیر ساخته نمیشه سر همین ما میایم ابتدا $previewData رو بیرون از شرط با null مقدار دهی میکنیم تا در دسترس باشه و اگه اون شرط اجرا شد مقدار جدید داخل $previewData قرار بگیره

 $previewData = null;
if(isset($_GET['preview'])){
    $previewData = $locationHandel->previewLocation($_GET['preview']);
}

 حالا داخل خود L.marker باید بیاییم چک کنیم ببنیم اگه متغییر null نبود مقدار lat - lng , title رو قرار بده

    L.marker([<?= is_null($previewData) ?: $previewData->lat ?>,<?= is_null($previewData) ?: $previewData?->lng ?>]).addTo(map).bindPopup("ّ<?= is_null($previewData) ?: $previewData?->title ?>").openPopup();

 

بهترین پاسخ
امیر صالحی ۱۲ مرداد ۱۴۰۰، ۱۵:۳۶