Js ទទួលបានប៉ារ៉ាម៉ែត្រពីខ្សែអក្សរ។ PHP និង GET និង POST វិធីសាស្ត្រផ្ទេរទិន្នន័យ

ធនធានគេហទំព័រទំនើបមិនត្រឹមតែផ្តល់ព័ត៌មានដល់អ្នកទស្សនាប៉ុណ្ណោះទេ ថែមទាំងមានទំនាក់ទំនងជាមួយគាត់ផងដែរ។ ដើម្បីប្រាស្រ័យទាក់ទងជាមួយអ្នកប្រើប្រាស់ អ្នកត្រូវទទួលព័ត៌មានខ្លះពីគាត់។ មានវិធីសាស្រ្តជាច្រើនដើម្បីទាញយកទិន្នន័យ វិធីសាស្រ្តទូទៅគឺ GET និង POST ។ ហើយតាមនោះ PHP មានការគាំទ្រសម្រាប់វិធីសាស្រ្តផ្ទេរទាំងនេះ ទទួលបានទិន្នន័យនិង POST ។ តោះមើលពីរបៀបដែលវិធីសាស្រ្តទាំងនេះដំណើរការ។
GET Method ទិន្នន័យត្រូវបានផ្ទេរដោយប្រើវិធីសាស្ត្រ GET ដោយបន្ថែមវាទៅ URL នៃស្គ្រីបដែលហៅថាដើម្បីដំណើរការព័ត៌មានដែលទទួលបាន។ សម្រាប់ការបំភ្លឺ វិធីសាស្រ្តនេះ។ចុច​ចូល របារអាសយដ្ឋានកម្មវិធីរុករកតាមអ៊ីនធឺណិត URL នៃធនធាន ហើយបន្ថែមសញ្ញាសួរ (?) ជាមុនសិន ហើយបន្ទាប់មកលេខបន្ទាត់ = 10 ។ ឧទាហរណ៍

http://domain.ru/script.php?num=10


ប្រសិនបើអ្នកមាន ម៉ាស៊ីនមេក្នុងស្រុកបន្ទាប់មកជាធម្មតា domain នឹងក្លាយជា localhost ហើយបន្ទាប់មកធាតុមុននឹងមើលទៅដូច

http://localhost/script.php?num=10


ក្នុងករណីនេះយើងហុចលេខប៉ារ៉ាម៉ែត្រស្មើនឹង 10. ដើម្បីបន្ថែម ប៉ារ៉ាម៉ែត្រខាងក្រោមស្គ្រីបត្រូវប្រើ ampers និង delimiter (&) ឧទាហរណ៍

http://domain.ru/script.php?num=10&type=new&v=text


IN ក្នុងករណីនេះយើងបានឆ្លងកាត់ប៉ារ៉ាម៉ែត្របីទៅស្គ្រីប: លេខជាមួយតម្លៃ 10 វាយជាមួយតម្លៃ "ថ្មី" និង v ជាមួយតម្លៃ "អត្ថបទ" ។
ដើម្បីទទួលបានប៉ារ៉ាម៉ែត្រទាំងនេះនៅក្នុងស្គ្រីប អ្នកត្រូវប្រើអារេដែលភ្ជាប់មកជាមួយ $_GET $_GET["num"], $_GET["type"], $_GET["v"] ។ ធាតុអារេទាំងនេះនឹងមានតម្លៃនៃប៉ារ៉ាម៉ែត្រដែលបានឆ្លងកាត់។ ដើម្បីបង្ហាញឧទាហរណ៍នេះ បង្កើតឯកសារ script.php ដែលមានខ្លឹមសារដូចខាងក្រោម



ធ្វើឱ្យមានសុពលភាពវិធីសាស្ត្រ GET នៅក្នុង PHP





ហើយឥឡូវនេះហៅឯកសារនេះនៅក្នុងកម្មវិធីរុករក

http://path/script.php?num=10&type=new&v=text


ហើយអ្នកនឹងឃើញប៉ារ៉ាម៉ែត្រដែលបានឆ្លងកាត់នៅក្នុងបង្អួចកម្មវិធីរុករក។ ប៉ុន្តែប្រសិនបើអ្នកហៅឯកសារនេះដោយគ្មាន ប៉ារ៉ាម៉ែត្របន្ថែម http://path/script.php អ្នកនឹងឃើញកំហុសដែលវានឹងផ្តល់ឱ្យ អ្នកបកប្រែ PHPថាមិនមានធាតុបែបនេះនៃអារេ $_GET ទេ។ អត្ថបទច្រើនជាងមួយអាចត្រូវបានឧទ្ទិសដល់ការត្រួតពិនិត្យទិន្នន័យដែលទទួលបានពីអ្នកប្រើប្រាស់ ដូច្នេះក្នុងអត្ថបទនេះខ្ញុំនឹងមិនប៉ះលើចំណុចនេះទេ។
ដូចដែលអ្នកប្រហែលជាយល់ហើយ ការបង្ខំឱ្យអ្នកប្រើប្រាស់វាយបញ្ចូលទិន្នន័យនៅក្នុងរបារអាសយដ្ឋានរបស់កម្មវិធីរុករកតាមអ៊ីនធឺណិតគឺមិនសូវល្អទេ ហើយជាការរអាក់រអួលទាំងស្រុង។ ដូច្នេះ ដើម្បីទទួលទិន្នន័យពីអ្នកប្រើប្រាស់ អ្នកត្រូវប្រើទម្រង់ html ។ តោះសរសេរទម្រង់ html សាមញ្ញ។


បញ្ចូលលេខ

តើអ្នកមានកុំព្យូទ័រទេ?
បាទ
ទេ


មតិយោបល់របស់អ្នក៖





ខ្ញុំសូមបញ្ចេញមតិបន្តិចលើទម្រង់ដែលបានបង្កើត។ ទម្រង់ត្រូវបានបង្កើតជាមួយស្លាកទម្រង់។ វាល​ទម្រង់​ត្រូវ​បាន​បង្កើត​ដោយ​ប្រើ​ការ​បញ្ចូល, ជ្រើស, ស្លាក​តំបន់​អត្ថបទ (អ្នក​អាច​អាន​បន្ថែម)។ នៅក្នុងស្លាកទម្រង់ គុណលក្ខណៈសកម្មភាពបញ្ជាក់ URL នៃស្គ្រីបដែលនឹងទទួលបានទិន្នន័យទម្រង់។ ក្នុងករណីរបស់យើង យើងបានបញ្ជាក់ឯកសារ script.php ដែលមានស្រាប់របស់យើង។ គុណលក្ខណៈ method បញ្ជាក់ method សម្រាប់បញ្ជូនទិន្នន័យ។ យើងបានបញ្ជាក់វិធីសាស្ត្រ GET ។ ឥឡូវនេះយើងដឹងថាឯកសារណាមួយដែលទិន្នន័យទម្រង់នឹងត្រូវបានផ្ទេរទៅ ហើយតាមរបៀបណា អ្វីទាំងអស់ដែលនៅសេសសល់គឺត្រូវរកមើលកន្លែងដែលត្រូវរកមើលវា?!
ទិន្នន័យទម្រង់នេះនឹងត្រូវបានបញ្ជូនទៅធនធានគេហទំព័រដោយកម្មវិធីរុករកតាមអ៊ីនធឺណិតដោយបន្ថែមវាទៅ URL៖ ដំបូងវានឹងមានសញ្ញាសួរ (?) បន្ទាប់មកប៉ារ៉ាម៉ែត្រនឹងត្រូវបានបង្ហាញដោយបំបែកដោយ ampersand (&) ។ ឈ្មោះ​នៃ​ប៉ារ៉ាម៉ែត្រ​នឹង​ត្រូវ​បាន​យក​ចេញ​ពី​គុណលក្ខណៈ​ឈ្មោះ ដែល​ត្រូវ​តែ​បញ្ជាក់​សម្រាប់​វាល​ទម្រង់​ណាមួយ។ តម្លៃនៃប៉ារ៉ាម៉ែត្រនឹងអាស្រ័យលើប្រភេទវាល។ ប្រសិនបើវាលគឺជាវាលអត្ថបទ តម្លៃនឹងជាអត្ថបទដែលបានបញ្ចូលដោយអ្នកប្រើប្រាស់។ ប្រសិនបើវាលគឺជាបញ្ជី ក្រុមនៃប៊ូតុងមូល ឬប្រអប់ធីក បន្ទាប់មកតម្លៃនៃប៉ារ៉ាម៉ែត្រនឹងជាតម្លៃនៃគុណលក្ខណៈតម្លៃនៃធាតុដែលបានជ្រើសរើស។ ខ្ញុំសូមពន្យល់ដោយប្រើទម្រង់របស់យើងជាឧទាហរណ៍។ ប្រសិនបើអ្នកប្រើបញ្ចូលលេខ 10 នៅក្នុងវាលបញ្ចូល នោះឈ្មោះនៃប៉ារ៉ាម៉ែត្រនឹងជាលេខ (តម្លៃនៃគុណលក្ខណៈឈ្មោះនៃស្លាកបញ្ចូល) ហើយតម្លៃនឹងមាន 10 (លេខដែលបញ្ចូលដោយអ្នកប្រើប្រាស់)។ ដូច្នោះហើយ កម្មវិធីរុករកនឹងបង្កើតគូ "num=10"។ ប្រសិនបើអ្នកប្រើជ្រើសរើសជម្រើស "បាទ/ចាស" ពីបញ្ជី នោះឈ្មោះប៉ារ៉ាម៉ែត្រនឹងជាប្រភេទ (តម្លៃនៃគុណលក្ខណៈឈ្មោះនៃស្លាកជ្រើសរើស) ហើយតម្លៃនឹងជាបាទ (តម្លៃនៃគុណលក្ខណៈតម្លៃនៃជម្រើស ស្លាក) ។ ដូច្នោះហើយ កម្មវិធីរុករកនឹងបង្កើតគូ “type=yes”។
ឥឡូវនេះយើងនឹងដាក់ទម្រង់នេះនៅលើទំព័រ forma.php ។



ទម្រង់សម្រាប់ការបញ្ជូនទិន្នន័យដោយប្រើវិធីសាស្ត្រ GET និង PHP



បញ្ចូលលេខ

តើអ្នកមានកុំព្យូទ័រទេ?
បាទ
ទេ


មតិយោបល់របស់អ្នក៖







បញ្ចូលតម្លៃណាមួយក្នុងវាលទម្រង់ ហើយចុចប៊ូតុង "ដាក់ស្នើ" ។ បន្ទាប់ពីចុចប៊ូតុង កម្មវិធីរុករកនឹងបើកទំព័រផ្សេងទៀត (script.php) ហើយទិន្នន័យដែលអ្នកបានបញ្ចូលនឹងត្រូវបានបង្ហាញនៅក្នុងបង្អួចកម្មវិធីរុករក។ ខ្ញុំគិតថាវាច្បាស់ហើយថាហេតុអ្វីបានជា៖ កម្មវិធីរុករកតាមអ៊ីនធឺណិតនឹងបញ្ជូនទិន្នន័យទៅស្គ្រីប script.php ហើយនៅក្នុងស្គ្រីបទិន្នន័យនេះនឹងត្រូវបានដំណើរការ និងបង្ហាញនៅលើអេក្រង់។
វិធីសាស្ត្រ POST ឥឡូវនេះ ចូរយើងមើលពីរបៀបដែលវិធីសាស្ត្រ POST ដំណើរការ។
ដើម្បីផ្ញើទិន្នន័យដោយប្រើវិធីសាស្ត្រ POST អ្នកត្រូវប្រើទម្រង់ HTML ។ ដូចដែលយើងចងចាំ គុណលក្ខណៈវិធីសាស្រ្តនៃស្លាកទម្រង់គឺទទួលខុសត្រូវចំពោះវិធីសាស្ត្រនៃការផ្ញើទិន្នន័យទម្រង់។ ដូច្នេះ អ្នកត្រូវបញ្ជាក់ក្នុង method attribute នៃ form tag តម្លៃ POST. បើមិនដូច្នោះទេ ទម្រង់អាចដូចគ្នាទៅនឹងវិធីសាស្ត្រ GET។ ចូរផ្លាស់ប្តូរទម្រង់របស់យើងដែលយើងបានប្រើរួចហើយដើម្បីបញ្ជូនទិន្នន័យដោយប្រើវិធីសាស្ត្រ GET ដើម្បីបញ្ជូនដោយប្រើវិធីសាស្ត្រ POST ។


បញ្ចូលលេខ

តើអ្នកមានកុំព្យូទ័រទេ?
បាទ
ទេ


មតិយោបល់របស់អ្នក៖





ដូចដែលអ្នកអាចឃើញ ទម្រង់នៅតែដដែល លើកលែងតែវិធីសាស្ត្រ និងគុណលក្ខណៈសកម្មភាព។ ឥឡូវនេះទិន្នន័យនឹងត្រូវបានបញ្ជូនទៅស្គ្រីប script_post.php ។ ចូរដាក់ទម្រង់របស់យើងនៅលើទំព័រ forma_post.php ។



ទម្រង់បញ្ជូនទិន្នន័យដោយប្រើវិធីសាស្ត្រ POST និង PHP



បញ្ចូលលេខ

តើអ្នកមានកុំព្យូទ័រទេ?
បាទ
ទេ


មតិយោបល់របស់អ្នក៖







ឥឡូវនេះយើងត្រូវសរសេរស្គ្រីបដែលនឹងដំណើរការទិន្នន័យទម្រង់របស់យើង។
ដើម្បីទទួលបានទិន្នន័យពីវិធីសាស្ត្រ POST ក្នុងស្គ្រីប អ្នកត្រូវប្រើអារេ $_POST ដែលភ្ជាប់មកជាមួយ។ គ្រាប់ចុចនៃអារេនេះនឹងជាឈ្មោះនៃប៉ារ៉ាម៉ែត្រ។ ក្នុងករណីរបស់យើង យើងត្រូវប្រើ $_POST["num"], $_POST["type"], $_POST["v"] ។ ធាតុអារេទាំងនេះនឹងមានតម្លៃនៃទិន្នន័យដែលបានផ្ទេរ។ ដូចដែលអ្នកអាចមើលឃើញ ភាពខុសគ្នាពីការប្រើប្រាស់វិធីសាស្ត្រ GET ត្រូវបានបង្ហាញតែក្នុងការប្រើប្រាស់អារេ $_POST ប៉ុណ្ណោះ។ ដូច្នេះវានឹងមិនពិបាកសម្រាប់យើងក្នុងការសរសេរឯកសារ script_post.php៖



ការប្រឡង វិធីសាស្ត្រ POSTនៅក្នុង PHP





ឥឡូវបើកឯកសារ forma_post.php នៅក្នុងកម្មវិធីរុករករបស់អ្នក។ បញ្ចូលទិន្នន័យមួយចំនួនទៅក្នុងវាលទម្រង់ ហើយចុចប៊ូតុង "ដាក់ស្នើ"។ ឥឡូវនេះ អ្នកប្រហែលជាបានកត់សម្គាល់ពីភាពខុសគ្នារវាងវិធីសាស្ត្រ POST និងវិធីសាស្ត្រ GET - ទិន្នន័យទម្រង់មិនបង្ហាញនៅក្នុងរបារអាសយដ្ឋាននៃកម្មវិធីរុករកទេ។ ទិន្នន័យមិនអាចផ្ញើដោយប្រើវិធីសាស្ត្រ POST តាមរយៈរបារអាសយដ្ឋានកម្មវិធីរុករកបានទេ។ នេះគឺជាភាពខុសគ្នាដ៏សំខាន់មួយដែលត្រូវចងចាំ។
នៅក្នុង PHP ដោយមិនគិតពីរបៀបដែលទិន្នន័យត្រូវបានផ្ញើ - វិធីសាស្ត្រ POST ឬវិធីសាស្ត្រ GET - អ្នកអាចទទួលបានទិន្នន័យដោយប្រើអារេ $_REQUEST ការប្រៀបធៀបវិធីសាស្ត្រ GET និង POST នៅពេលប្រើវិធីសាស្ត្រ GET ទិន្នន័យត្រូវបានផ្ទេរដោយបន្ថែមទៅផ្នែកបន្ថែម URL ដូច្នេះ ពួកវានឹងអាចមើលឃើញដោយអ្នកប្រើប្រាស់ ដែលវាមិនតែងតែល្អពីទិដ្ឋភាពសុវត្ថិភាពនោះទេ។ ដូចគ្នានេះផងដែរចំនួនអតិបរមានៃទិន្នន័យដែលបានផ្ទេរនឹងអាស្រ័យលើកម្មវិធីរុករក - លើចំនួនអតិបរមាដែលអាចអនុញ្ញាតបាននៃតួអក្សរនៅក្នុងរបារអាសយដ្ឋានរបស់កម្មវិធីរុករក។
នៅពេលប្រើវិធីសាស្ត្រ POST ទិន្នន័យនឹងមិនអាចមើលឃើញដោយអ្នកប្រើប្រាស់ (មិនបង្ហាញក្នុងរបារអាសយដ្ឋានកម្មវិធីរុករកទេ)។ ដូច្នេះហើយ ពួកវាកាន់តែមានសុវត្ថិភាព ហើយជាលទ្ធផល កម្មវិធីដែលដំណើរការទិន្នន័យនេះត្រូវបានការពារច្រើនជាងនៅក្នុងលក្ខខណ្ឌនៃសុវត្ថិភាព។ ដូចគ្នានេះផងដែរ, បរិមាណនៃទិន្នន័យដែលបានបញ្ជូនគឺអនុវត្តមិនកំណត់។
នៅពេលជ្រើសរើសវិធីសាស្ត្រផ្ទេរទិន្នន័យ អ្នកត្រូវគិតគូរពីលក្ខណៈពិសេសខាងលើ ហើយជ្រើសរើសវិធីសាស្ត្រដែលសមស្របបំផុត។

នៅលើគេហទំព័រស្ទើរតែទាំងអស់ អ្នកអាចឃើញតំណភ្ជាប់ដែលមានប៉ារ៉ាម៉ែត្របន្ទាប់ពីសញ្ញា “?” ឧទាហរណ៍ http://some.site.com/?id=1 ។ ជាធម្មតា ស្គ្រីបម៉ាស៊ីនមេគ្រប់គ្រងដំណើរការនៃប៉ារ៉ាម៉ែត្របែបនេះ ប៉ុន្តែជួនកាលចាំបាច់ត្រូវស្វែងរកប៉ារ៉ាម៉ែត្រទាំងនេះនៅក្នុង JavaScript ។ រឿងថ្ងៃនេះនឹងប្រាប់អ្នកពីរបៀបធ្វើវា។

តើអ្វីទៅដែលហៅថាប៉ារ៉ាម៉ែត្រ GET? តាមពិត នេះគ្រាន់តែជាខ្សែអាស័យដ្ឋាន ប៉ុន្តែវាជាទម្លាប់ដែលថាប្រសិនបើតួអក្សរ "?" ត្រូវបានរកឃើញនៅក្នុង URL នោះតួអក្សរទាំងអស់បន្ទាប់ពីវាជាប៉ារ៉ាម៉ែត្រ។ ការបកស្រាយប៉ារ៉ាម៉ែត្រគឺស្តង់ដារ៖ ដំបូងមកឈ្មោះអថេរ បន្ទាប់មកនិមិត្តសញ្ញា "=" បន្ទាប់មកតម្លៃអថេរ អថេរត្រូវបានបំបែកដោយនិមិត្តសញ្ញា "&" ។ អ្នកអាចស្វែងរកអាសយដ្ឋានបច្ចុប្បន្ននៅក្នុង JavaScript ដោយអានតម្លៃនៃ window.location ។ ញែកបន្ទាត់បន្ទាប់ពី "?" អ្នកនឹងត្រូវធ្វើវាជាពីរវគ្គ៖ ដំបូងបំបែកវាទៅជាក្រុម "variable=value" ហើយបន្ទាប់មកបំបែកវាទៅជាផ្នែកសមាសភាគរបស់វា។

ការបំបែកខ្សែអក្សរប៉ារ៉ាម៉ែត្រត្រូវបានធ្វើឱ្យកាន់តែងាយស្រួលដោយការពិតដែលថា JavaScript មានមុខងារខ្សែអក្សរពិសេស - បំបែក () លទ្ធផលដែលនឹងក្លាយជាអារេនៃខ្សែអក្សរ។ ដើម្បីប្រើវា ដំបូងអ្នកត្រូវបង្កើត String object ចាប់តាំងពី មុខងារនេះ។គឺជាវិធីសាស្រ្តនៃវត្ថុនេះ។ នេះត្រូវបានធ្វើយ៉ាងសាមញ្ញ៖

someVar = new String("អត្ថបទខ្លះ");

បន្ទាប់មកយើងបែងចែកខ្សែអក្សរទៅជាខ្សែរង៖

someArray = someVar.split("x");

ដែល "x" គឺជានិមិត្តសញ្ញាសម្រាប់បែងចែកខ្សែអក្សរទៅជាខ្សែអក្សររង។ ដើម្បីស្វែងរកតួអក្សរក្នុងខ្សែអក្សរមួយ អ្នកត្រូវប្រើមួយផ្សេងទៀត មុខងារខ្សែអក្សរ- indexOf():

someVar.indexOf("?");

ការណែនាំអំពីទ្រឹស្តីត្រូវបានបញ្ចប់។ តោះចាប់ផ្តើមអនុវត្ត។ ខ្ញុំបានសម្រេចចិត្តថាអថេរ GET ទាំងអស់គួរតែត្រូវបានរក្សាទុកជាពីរដាច់ដោយឡែកពីគ្នា។ អារេសកល៖ មួយរក្សាទុកឈ្មោះ តម្លៃហាងផ្សេងទៀតមានតម្លៃ។ ជាអកុសល JavaScript មិនត្រូវបានគាំទ្រទេ។ អារេពាក់ព័ន្ធដូច្នេះ ចូរយើងប្រើវិធីដែលខ្ញុំបានចង្អុលបង្ហាញ។ វាក៏ចាំបាច់ផងដែរដើម្បីរក្សាទុកចំនួនអថេរ GET ។ ជាការពិតណាស់ អ្នកតែងតែអាចហៅមុខងារដើម្បីគណនាទំហំនៃអារេ ប៉ុន្តែវិធីសាស្ត្ររបស់ខ្ញុំមានលក្ខណៈស្ទីលស្ទីលគឺប្រសើរជាង។ ដូច្នេះហើយ អថេរ និងអារេសកល៖

var_GET_Keys; // សម្រាប់ពេលនេះ អារេទទេ var _GET_Values; var_GET_Count = 0; // មិនមានធាតុនៅឡើយទេ var _GET_Default = ""

អត្ថន័យនៃអថេរ _GET_Default នឹងត្រូវបានពន្យល់នៅពេលក្រោយ។ បន្ទាប់មក ខ្ញុំនឹងបង្កើតមុខងារ get_parseGET() ដែលនឹងញែក URLs និងបង្កើតអារេជាមួយអថេរ។ នៅដើមដំបូង មុខងារបង្កើត String object ហើយពិនិត្យមើលវត្តមានរបស់តួអក្សរ "?"

l = get.length; get = get.substr(x+1, l-x);

ឥឡូវនេះយើងបែងចែកបន្ទាត់ទៅជាក្រុម "អថេរ = តម្លៃ" គណនាចំនួនអថេរសរុប ហើយរៀបចំដើម្បីបង្កើតអារេចាំបាច់៖

l = get.split("&"); x = 0; _GET_Count = l.length; _GET_Keys = អារេថ្មី(_GET_Count); _GET_Values ​​= អារេថ្មី(_GET_Count);

ហើយចុងក្រោយ យើងបែងចែកក្រុមលទ្ធផលជា 2 អារេដែលមានឈ្មោះនៃអថេរ និងតម្លៃរបស់វា៖

for(i in l) ( get = l[i].split("="); _GET_Keys[x] = get; _GET_Values[x] = get; x++; )

IN ក្នុងឧទាហរណ៍នេះ។ the for.. in construction ត្រូវបានប្រើ ដែលធ្វើម្តងទៀតតាមរយៈធាតុទាំងអស់នៃអារេ។ វាក្យសម្ព័ន្ធនៃសំណង់នេះគឺ៖

សម្រាប់ (គន្លឹះក្នុងអារេ) ( // សកម្មភាពរបស់អ្នក)

ដែល key គឺជាឈ្មោះរបស់ key ដែលនឹងត្រូវបានជ្រើសរើសពី អារេ. នៅក្នុងតួនៃរង្វិលជុំ ធាតុបច្ចុប្បន្នអាចត្រូវបានចូលប្រើដោយអារេ។

មុខងារទីពីរពីបណ្ណាល័យ get_fetchVar(key) អនុញ្ញាតឱ្យអ្នកស្វែងរកតម្លៃនៃអថេរ GET ដែលបានផ្តល់ឱ្យ។ វាដំណើរការដោយគ្រាន់តែធ្វើម្តងទៀតលើអារេ _GET_Keys ។ ប្រសិនបើរកមិនឃើញសោ វានឹងត្រឡប់តម្លៃ _GET_Default ដែលបានរៀបរាប់ខាងលើ។ ខ្ញុំចង់ចំណាំថាតម្លៃ _GET_Default មិនចាំបាច់ផ្លាស់ប្តូរនៅក្នុងបណ្ណាល័យខ្លួនឯងទេ - បើចាំបាច់ នេះអាចត្រូវបានធ្វើនៅក្នុងកូដ HTML របស់អ្នក៖

_GET_Default="tra la la";

នៅចុងបញ្ចប់នៃស្គ្រីបមានការហៅទៅ get_parseGET(); ហើយនេះគឺជាកន្លែងដែលបណ្ណាល័យបញ្ចប់។

ល្អអាក្រក់

    នៅលើគេហទំព័រស្ទើរតែទាំងអស់ អ្នកអាចឃើញតំណភ្ជាប់ដែលមានប៉ារ៉ាម៉ែត្របន្ទាប់ពីសញ្ញា "?" ឧទាហរណ៍ http://some.site.com/?id=1 ។ ជាធម្មតា ដំណើរការប៉ារ៉ាម៉ែត្របែបនេះ...

    មានវិធីសាស្រ្តជាច្រើនដើម្បីលុបធាតុអារេនៅក្នុង JavaScript ។ ទាំងនេះរួមបញ្ចូលវិធីសាស្រ្ត pop និង shift ។ វិធីសាស្រ្តលេចឡើងយកធាតុទីមួយចេញពីអារេដែលបានផ្តល់ឱ្យ។ វិធីសាស្រ្តផ្លាស់ប្តូរលុប...

ឥឡូវនេះខ្ញុំនឹងប្រាប់អ្នកពីរបៀបដោយប្រើ js យើងអាចរៀបចំ URL យ៉ាងងាយស្រួល និងសាមញ្ញក្នុងកម្មវិធីរុករកដោយមិនផ្ទុកទំព័រឡើងវិញ។ សម្រាប់រឿងនេះយើងនឹងប្រើ មុខងារបន្ទាប់៖ history.pushState(). វាគួរអោយយកចិត្តទុកដាក់ចំពោះការពិតដែលថាវាដំណើរការតែជាមួយកម្មវិធីរុករកដែលគាំទ្រ html5 ប៉ុណ្ណោះ! វាមានប៉ារ៉ាម៉ែត្រចំនួន 3 ដែលយើងអាចឆ្លងកាត់អ្វីទាំងអស់ ពោលគឺ៖

History.pushState("","","");

នៅក្នុងវិធីសាស្រ្តដំបូងនៃយើងឆ្លងកាត់ស្ថានភាពនៃវត្ថុ។ ទីពីរគឺគ្មានអ្វីក្រៅពីឈ្មោះទេ (ដោយវិធីថ្ងៃនេះវាត្រូវបានមិនអើពើ ... ) ។ ហើយប៉ារ៉ាម៉ែត្រទីបីគឺ URL ខ្លួនឯង។

នៅក្នុងអត្ថបទនេះយើងនឹងពិចារណាតែទីបីប៉ុណ្ណោះ។

នៅក្នុងប៉ារ៉ាម៉ែត្រ URL យើងគ្រាន់តែត្រូវឆ្លងកាត់ខ្សែអក្សរដែលនឹងត្រូវបានជំនួសនៅក្នុង URL ពីឫសនៃគេហទំព័រ។

តោះបន្ថែម URL

URL របស់យើងផ្ទាល់ប្រហែលជាសាមញ្ញបំផុត៖ http://localhost/

Var newUrl = "/catalog/?login=myLogin&page=phone";

history.pushState("", "", newUrl);

បន្ទាប់ពីដំណើរការស្គ្រីបនេះ អ្នកនឹងឃើញនៅក្នុងរបារអាសយដ្ឋាន៖ localhost/catalog/?login=myLogin&page=phone

ប៉ុន្តែត្រូវប្រយ័ត្ន។ ចាប់តាំងពី URL របស់យើងបានផ្លាស់ប្តូរ។ បន្ទាប់មក នៅពេលអ្នកចុច refresh ទំព័រ កម្មវិធីរុករកនឹងព្យាយាមចូលទៅកាន់ URL ថ្មី។ ហើយប្រសិនបើគេហទំព័ររបស់អ្នកមិនមានផ្នែក /catalog/ នោះអ្នកនឹងឃើញកំហុស 404 ។

តោះផ្លាស់ប្តូរ URL ដែលមានស្រាប់

Var arUrl = window.location.pathname.split("/");

var newUrl = "/bazar/"+arUrl+"/"+window.location.search;
history.pushState("", "", newUrl);
ជួរទី 1៖ ទទួលបានផ្លូវដែលទាក់ទងទៅនឹងម៉ាស៊ីន ហើយប្រើការបំបែកដើម្បីបំបែកវាទៅជាអារេមួយ។

ជួរទី 2: យើងបង្កើត URL ថ្មីដែលមានពាក្យ "bazar" + គន្លឹះទីពីរនៃអារេរបស់យើងដែលមានពាក្យ samsung ហើយនៅចុងបញ្ចប់យើងបន្ថែមការទទួលបានរបស់យើង

ជួរទី 3: តាមពិតការជំនួសខ្លួនឯង។

បន្ទាប់ពីដំណើរការស្គ្រីបនេះ អ្នកនឹងឃើញនៅក្នុងរបារអាសយដ្ឋាន៖ localhost/bazar/samsung/?login=myLogin&page=phone

ការផ្លាស់ប្តូរប៉ារ៉ាម៉ែត្រ GET

សូមក្រឡេកមើលឧទាហរណ៍ដូចគ្នា។ Var arUrl = window.location.search.split("&"); arUrl = arUrl.slice(1); var arr=; $.each(arUrl,function(i,elem)( arr[i] = elem.split("="); )); var newUrl = arr+"="+arr+"&"+arr+"="+arr; newUrl = window.location.pathname+"?"+newUrl; history.pushState("", "", newUrl);ជាការពិតណាស់

  • ស្គ្រីបនេះ។
  • គឺជាការបង្ហាញ ហើយប្រហែលជាសាមញ្ញបំផុត។ បន្ទាប់ពីការប្រតិបត្តិរបស់វា តម្លៃនៃប៉ារ៉ាម៉ែត្រ GET នឹងត្រូវបានប្តូរនៅក្នុងរបារអាសយដ្ឋាននៃកម្មវិធីរុករក។ ?login=myLogin&page=phone នឹងប្តូរទៅ ?login=phone&page=myLogin។ មែនហើយឥឡូវនេះតាមលំដាប់លំដោយ។
  • បន្ទាត់៖ យើងទទួលបានអារេនៃការបំបែកប៉ារ៉ាម៉ែត្រ GET ដោយប្រើសញ្ញា &
  • បន្ទាត់៖ ចាប់តាំងពី window.location.search ត្រឡប់ប៉ារ៉ាម៉ែត្ររួមគ្នាជាមួយសញ្ញាបំបែក - ? យើងយកវាចេញ។
  • បន្ទាត់៖ បង្កើតអារេ
  • បន្ទាត់៖ តោះឆ្លងកាត់អារេរបស់យើង។ បន្ទាត់៖ បែងចែកតម្លៃនៃគ្រាប់ចុច។បន្ទាត់៖ ការប្រមូល
    បន្ទាត់ថ្មី។
  • ជាមួយនឹងប៉ារ៉ាម៉ែត្រ។
  • ជាការពិតណាស់ ចំណុចនេះអាចត្រូវបានធ្វើខុសគ្នា ប៉ុន្តែនៅក្នុងក្របខ័ណ្ឌនៃមេរៀន យើងនឹងធ្វើវាតាមរបៀបសាមញ្ញបំផុត។
  • បន្ទាត់៖ ប្រមូល URL ថ្មី។
    បន្ទាត់ជំនួស url

    បន្ទាប់ពីដំណើរការស្គ្រីប URL ចាស់របស់យើង៖ localhost/catalog/samsung/?login=myLogin&page=phone