Ko'proq

Buklamali oynadan MySQL jadvaliga ariza ma'lumotlarini yuboring

Buklamali oynadan MySQL jadvaliga ariza ma'lumotlarini yuboring


Menda varaqalar xaritasi bor va men foydalanuvchidan varaqani popupda to'ldirishni xohlayman va "yuborish" tugmachasini bosganimdan so'ng, formadagi ma'lumotlar MySQL ma'lumotlar bazasiga kiritiladi.

Yakuniy maqsad sifatida men foydalanuvchini xaritada nuqta qo'yishini (leaflet.draw orqali) va shaklni to'ldirishini, ma'lumotlar bazasi va lat / lng-ni ma'lumotlar bazasiga (MySQL) qo'shib, keyin foydalanuvchining fikrini qo'shishini xohlayman. popupdagi barcha ma'lumotlar bilan xaritaga.

Menda xarita, ma'lumotlar bazasi va php fayli o'rnatilgan, ammo ma'lumotlar ma'lumotlar bazasiga yuborilmayapti. Bu erdan qaerga borishim kerakligi haqida biron bir taklif bormi? Formamni noto'g'ri o'rnatganmanmi deb o'ylayapmanmi? Balki sintaksismi? Men xaritaga nuqta qo'sha olaman va ichidagi shakl ma'lumotlari bilan popup paydo bo'lishi mumkin, ammo "yuborish" tugmachasini bosganimda ma'lumotlar bazasida ko'rinmaydi.

Mana mening xaritam saqlanadigan indeks HTML faylim

                                       Xarita    

Mana mening JavaScript-faylim:

var map; var centerlatlng = L.latLng (35.85199, -119.6577); var southWest = L.latLng (3.3, -154.2), northEast = L.latLng (61.5, -58.4), chegaralar = L.latLngBounds (southWest, northEast); var myIcon1 = L.icon ({iconUrl: 'http://www.broomfield.org/images/pages /N315/blue%20heading%20icons_building.png ">

Sizning kodingizda bir nechta narsalar noto'g'ri ko'rinadi.

  1. Leaflet popup ichida shakllar mavjud bo'lsa, siz klassik tarzda shaklni yuborishdan qochishni xohlaysiz. Odatda sizning sahifangizni qayta yuklashga xalaqit beradigan bir nechta AJAX-dan foydalanib yuborishingiz kerak. Buni amalga oshirish uchun siz ariza yuborishda odatiy xatti-harakatlarning oldini olishingiz kerak. Ushbu savolda bunga qanday erishish mumkinligi muhokama qilinadi. Sizning holatlaringizda quyidagi kodlarni kiritish kifoya bo'lishi kerak:

    $ ('# form'). submit (function (e) {e.preventDefault ();});

    forma bilan popup yaratilgandan so'ng, sizning kodingizdan keyin

    var popup = L.popup ({maxWidth: 1000})… O'tkazib yuborilgan, shu jumladan sizning shaklingiz ... openOn (xarita);

    Bu sizning arizangiz topshirilmasligiga ishonch hosil qiladi.

  2. Shaklni qo'lda topshirish uchun kodni yozishingiz kerak. Ushbu kodni keyine.preventDefault ();yuqoridagi kodda satr yoki funktsiyangizni aniqlangaddMarkeranketani topshirish bilan ishlash. Ushbu funktsiyani global miqyosda yozing, masalan. siznikidan oldin$ (document) .ready (function () {

    Shaklni yuborish bilan shug'ullanish mumkin, masalan. jQuery-dan foydalanishpostyokiajaxfunktsiya. Ushbu javob ushbu qismni qanday qilishni yaxshi ko'rsatmoqda. URL (harakat URL) sizning PHP-skriptingiz bo'ladi.

  3. Siz PHP qismini boshqarishingiz kerak, ya'ni taqdim etilgan qiymatlarga kirishingiz va ularni ma'lumotlar bazasiga qo'shishingiz kerak. Theismshakl nazorati atributi mos kelishi kerak$ _POSTPHP-dagi kalitlar. O'ylaymanki, sizidatribut $ _POST kalitlarini belgilaydi. Ko'pincha, bu deganiismatributi bir xil qiymatga egaidxususiyat.

    Masalan, sizning qatoringiz

    bo'lishi kerak

    yordamida uning qiymatini PHP-da olish imkoniyatiga ega bo'lish uchun

    $ _POST ['hibsga olish']

    Agar sizning kodingiz faqat ishlab chiqish maqsadiga mos kelmasa, iltimos, SQL in'ektsiyasi bilan bog'liq muammolarni bilib oling va ishlab chiqarishdan oldin kodingizni tuzating. Masalan, tekshiring. buni va buni boshlash kerak.

  4. Leaflet popup-da uni yopish yoki yuborilgan qiymatlarni ko'rsatish kabi kerakli amallarni qo'lda bajarishingiz kerak bo'ladi. Siz buni odatdamuvaffaqiyatjQuery-da taqdim etadigan funktsiyaajaxyokipostshaklni topshirishda funktsiya.


Videoni tomosha qiling: Paso Procedimientos Almacenados sin parametros