با شما در این روزهای سخت همراهیم (۴۰٪ تخفیف کمپین همدلی)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱۳ امیر محمد جوادی
عدم ارسال اطلاعات فرم به دیتابیس
جامعه پی اچ پی ایجاد شده در ۰۳ دی ۱۴۰۱

سلام وقت بخیر دکمه سابمیت بعد از تکمیل اطلاعات ارسال نمی‌شود و اطلاعات پایگاه داده گویا فراخوانی نمی‌شود

ممنون میشم برسی فرماید

سلام امیر جان

چندتا مشکل توی فایل هاتون دیدم که بهتون میگم برطرف کنید.

  • آدرس دهی یکی از include‌ها توی فایل bootstrap/init.php اشتباه هست که باید به شکل زیر اصلاح بشه:
include BASE_PATH . "libs/lib-location.php";
// Convert to
include BASE_PATH . "libs/lib-locations.php";
  • دومین اصلاحی که باید صورت بگیره توی فایل assets/js/scripts.js هست، که در قسمت مربوط به submit فرم form#addtolocation باید کد زیر رو به اول کدتون اضافه کنید تا صفحه رفرش نشه و دستور ajax اجرا بشه.
e.preventDefault();
  • مورد بعدی هم مربوط به فایل libs/lib-locations.php هست که باید اصلاح بشه:
function insertLocation($data)
{
 global $pdo ;
    $sql = "INSERT INTO `locations` (`title`, `lat`, `lang`, `type`) VALUES ( :title, :lat, :lng, :typ;";
    $stmt = $pdo->prepare($sql);
    $stmt -> execute([':title'=>$data['title'],':lat'=>$data['lat'],':lng'=>$data['lng'],':typ'=>$data['type']]);
    return $stmt->rowCount();
}

باید تبدیل بشه به:

function insertLocation($data)
{
  global $pdo;
   
  $sql = "INSERT INTO `locations` (`title`, `lat`, `lng`, `type`) VALUES (:title, :lat, :lng, :typ);";
  $stmt = $pdo->prepare($sql);
  $stmt->execute([':title'=>$data['title'],':lat'=>$data['lat'],':lng'=>$data['lng'],':typ'=>$data['type']]);
  return $stmt->rowCount();
}
صادق برزگر ۰۳ دی ۱۴۰۱، ۱۵:۴۳

سلام مهندس

کدهارا تصحیح کرددم ارور 500 اینترنال سرور برخورد کردم

امیر محمد جوادی ۰۳ دی ۱۴۰۱، ۱۶:۴۶

امیرجان میشه اسکرین شات از خطایی که رخ داده بفرستید.

صادق برزگر ۰۳ دی ۱۴۰۱، ۱۶:۴۹

سلام مهندس

کدهارا تصحیح کرددم ارور 500 اینترنال سرور برخورد کردم

امیر محمد جوادی ۰۳ دی ۱۴۰۱، ۱۷:۱۱

امیر جان در چه صفحه ای خطای 500 رخ میده؟


یک اصلاح دیگه هم هست که در فایل tpl/tpl-index.php و خط 32 باید انجام بدید:

14bd-photo_2022-12-24_21-25-49.jpg

اگه همچنان مشکل پابرجا بود لطفا دوباره سورسی که تغییرات رو انجام دادید پیوست کنید.

صادق برزگر ۰۳ دی ۱۴۰۱، ۱۸:۰۴

الان همچی اوکی شد سابمیت میزنم یک اینپوت اینولید رکوئست میاد

امیر محمد جوادی ۰۳ دی ۱۴۰۱، ۲۰:۱۱

این مورد رو انجام دادید؟

  • دومین اصلاحی که باید صورت بگیره توی فایل assets/js/scripts.js هست، که در قسمت مربوط به submit فرم form#addtolocation باید کد زیر رو به اول کدتون اضافه کنید تا صفحه رفرش نشه و دستور ajax اجرا بشه.
e.preventDefault();

اگر انجام دادید و هنوز مشکل داره، سورس جدیدتون رو ارسال کنید.

صادق برزگر ۰۳ دی ۱۴۰۱، ۲۰:۵۷

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


امیر محمد جوادی ۰۴ دی ۱۴۰۱، ۰۷:۲۵

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

در فایل assets/js/scripts.js و خط 137 باید تغییر زیر رو انجام بدید:

e.preventdefualt();
// Change to
e.preventDefault();

یکم باید دقتتون رو بیشتر کنید تا کمتر این مشکلات براتون پیش بیاد، هرچند ما اینجا بهتون کمک میکنیم که سریع‌تر مشکلاتتون رو پیدا کنید و رفع کنید.

صادق برزگر ۰۴ دی ۱۴۰۱، ۱۰:۲۷

سلام مهندس عزیز تغییرات اعمال کردم منتهی مراتب دکمه ثبت می‌زنم هیچ اتفاقی نمی‌افتد

امیر محمد جوادی ۰۵ دی ۱۴۰۱، ۰۷:۴۰

سلام،

تغییراتی که صادق گفتن انجام بدیدو من هم چک کردم و بدرستی کار میکنه، یکبار دیگه تغییراتی که گفته شدو بررسی کنید، تب console اینسپکت رو باز کنید چک کنید خطای جی اس نداشته باشید و زمانیکه روی دکمه کلیک میکنید اگر خطایی در تب کنسول ندیدید ب سربرگ نتورک برید و دکمه رو بزنید ببینید ریکوئست ارسال میشه یا نه... این موارد بررسی و دیباگینگ رو انجام بدید تا اشکال کارتون رو پیدا کنید و فیکسش کنید وگرنه نهایتا میگم سورس تغییر یافته رو واستون بذارن.

محسن موحد ۰۵ دی ۱۴۰۱، ۰۸:۰۷