JQuery Ajax Получить текущий URL в форме отправки

Я использовал код из https://scotch.io/tutorials/submitting-ajax-forms-with-jquery, чтобы опубликовать эти данные из этой формы

 <form id = "request" method = "post" autocomplete = "off" class = "form-horizontal row scrollTo" novalidate = "novalidate">
    <div class = "form-group row">
    <label class = "control-label label-font" for = "lastname">Lastname</label>
    <input name = "lastname" id = "lastname" class = "form-control required" type = "text">
    <label class = "control-label label-font" for = "firstname">Firstname</label>
    <input name = "firstname" id = "firstname" class = "form-control required" type = "text">
    </div>
    <div class = "form-group row">
    <label class = "control-label label-font" for = "mobile">Mobile</label>
    <input name = "mobile" id = "mobile" class = "form-control required number" type = "text" minlength = "10" maxlength = "10">
    <label class = "control-label label-font" for = "vat">vat</label>
    <input name = "vat" id = "vat" class = "form-control validVAT required" maxlength = "9" type = "text">
    </div>
    <div class = "form-group row">
    <label class = "control-label label-font" for = "address">Address</label>
    <input name = "address" id = "address" class = "form-control required" type = "text">
    <label class = "control-label label-font" for = "streetno">Streetno</label>
    <input name = "streetno" id = "streetno" class = "form-control required" type = "text">
    </div>
    <div class = "form-group row">
    <label class = "control-label label-font" for = "user_postcode">Postcode</label>
    <select name = "user_postcode" id = "user_postcode" class = "form-control select2 required select2-hidden-accessible" tabindex = "-1" aria-hidden = "true"><option value = "">Select</option><optgroup label = "country1">
    <option value = "3002123">3002123 Las Vegas</option><option value = "3002723">3002723 Los Angeles</option></optgroup></select><span class = "select2 select2-container select2-container--default" dir = "ltr" style = "width: 100px;"><span class = "selection"><span class = "select2-selection select2-selection--single" role = "combobox" aria-haspopup = "true" aria-expanded = "false" tabindex = "0" aria-labelledby = "select2-user_postcode-container"><span class = "select2-selection__rendered" id = "select2-user_postcode-container" title = "3002123 Las Vegas">3002123 Las Vegas</span><span class = "select2-selection__arrow" role = "presentation"><b role = "presentation"></b></span></span></span><span class = "dropdown-wrapper" aria-hidden = "true"></span></span> </div>
    </div>
    <label class = "control-label label-font" for = "user_email">Email</label>
    <input name = "user_email" id = "user_email" class = "form-control required" type = "text">
    </div>
    <div class = "form-group row">
    <label class = "control-label label-font" for = "notes">Notes</label>
    <textarea type = "text" name = "notes" id = "notes" class = "form-control"></textarea>
    </div>
    <div class = "form-group text-center">
    <input type = "hidden" name = "host"><input type = "hidden" name = "userID" class = "userID" value = "ho9fbhp3mhb"><input type = "hidden" name = "usage" value = "auto">
    <button type = "submit" class = "btn btn-primary btn-sm" data-wizard = "letters">Submit</button>
    </div>
    </form>

в файле .php.

<script type = "text/javascript">

            jQuery(document).ready(function() {

                jQuery("#request").submit(function(event) {

                    var formData = {
                        'lastname'         : jQuery('input[name=lastname]').val(),
                        'firstname'        : jQuery('input[name=firstname]').val(),
                        'phone'            : jQuery('input[name=mobile]').val(),
                        'afm'              : jQuery('input[name=vat]').val(),
                        'address'          : jQuery('input[name=address]').val(),
                        'address_no'       : jQuery('input[name=streetno]').val(),
                        'user_postcode'    : jQuery('select[name=user_postcode]').val(),
                        'email'            : jQuery('input[name=user_email]').val(),
                        'notes'            : jQuery('textarea[name=notes]').val()
                    };

                    jQuery.ajax({
                        type        : 'POST', 
                         url         : 'process.php', // the url where we want to POST 
                        data        : formData, 
                        dataType    : 'json', 
                                    encode          : true
                    })
                        .done(function(data) {

                            console.info(data); 

                        });

                    event.preventDefault();
                });

            });

        </script>

Это код, который я написал, но я хочу сохранить в файле .php также текущий URL. Какой код для этого? Куда и как я могу поместить код? Кроме того, могу ли я установить весь этот код только тогда, когда форма действительна?

вы хотите, чтобы URL-адрес ajax был текущим URL-адресом?

Darshan 10.04.2018 00:14

Вы хотите сохранить URL-адрес отправленной страницы? или эта страница?

Özgür Can Karagöz 10.04.2018 00:14

Ajax должен отправлять заголовок для реферера и / или источника.

Taplar 10.04.2018 00:17

Я хочу сохранить URL-адрес страницы, на которой находится форма

gma 10.04.2018 00:18
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
163
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Добавьте еще одно свойство в formData:

var formData = {
    'lastname'         : jQuery('input[name=lastname]').val(),
    'firstname'        : jQuery('input[name=firstname]').val(),
    'phone'            : jQuery('input[name=mobile]').val(),
    'afm'              : jQuery('input[name=vat]').val(),
    'address'          : jQuery('input[name=address]').val(),
    'address_no'       : jQuery('input[name=streetno]').val(),
    'user_postcode'    : jQuery('select[name=user_postcode]').val(),
    'email'            : jQuery('input[name=user_email]').val(),
    'notes'            : jQuery('textarea[name=notes]').val(),
    'url'              : location.href
};

Спасибо за ваш ответ!! Не могли бы вы также сказать мне, как отправить эти данные в файл php только тогда, когда форма действительна?

gma 12.04.2018 16:57

Поместите код проверки в свою функцию .submit(). Если он недействителен, верните false, чтобы предотвратить отправку формы.

Barmar 12.04.2018 20:53
Ответ принят как подходящий

Свойство window.location.href возвращает URL-адрес текущей страницы.

console.info(window.location.href);

Также: https://www.w3schools.com/js/js_window_location.asp

если мы подойдем к проблеме

var formData = {
  'lastname': jQuery('input[name=lastname]').val(),
  'firstname': jQuery('input[name=firstname]').val(),
  'phone': jQuery('input[name=mobile]').val(),
  'afm': jQuery('input[name=vat]').val(),
  'address': jQuery('input[name=address]').val(),
  'address_no': jQuery('input[name=streetno]').val(),
  'user_postcode': jQuery('select[name=user_postcode]').val(),
  'email': jQuery('input[name=user_email]').val(),
  'notes': jQuery('textarea[name=notes]').val(),
  'url' : window.location.href
};

вы можете сделать это так.

Спасибо за ваш ответ!! Не могли бы вы также сказать мне, как отправить эти данные в файл php только тогда, когда форма действительна?

gma 12.04.2018 16:57

есть много способов сделать это. stackoverflow.com/questions/37912937/… Я рекомендую вам посмотреть здесь.

Özgür Can Karagöz 13.04.2018 00:25

Другие вопросы по теме