Как передать данные из одной страницы в скрипт формы и после обработки этих данных вывести результат в новой вкладке?

Конечно, вот более ясная и структурированная формулировка вопроса:  
Могу ли я с помощью jQuery Ajax передавать серийный номер с одной страницы на другую и показывать результат поиска в новой вкладке? Например, чтобы пользователь мог нажать на серийный номер на первой странице, после чего открылась бы новая вкладка со страницей поиска, где данный серийный номер уже был бы введен в соответствующем поле формы, и результат поиска отображался ниже? Я пробовал искать подобные решения в интернете, но сталкиваюсь с проблемой: новая вкладка открывается, но без результатов поиска и без введенного серийного номера в форме.Функция Ajax при этом возвращает "success" как true. Буду благодарен за любую помощь.
  • 7 мая 2024 г. 19:20
Ответы на вопрос 4
Для решения вашей задачи вы можете использовать следующий подход:

1. На первой странице создайте ссылку или кнопку с серийным номером, при клике на которую будет открываться новая вкладка со страницей поиска. Например:

```html
<a href="#" id="searchLink" data-serialNumber="123456789">Поиск по серийному номеру</a>
```

2. При клике на эту ссылку или кнопку, соберите серийный номер и передайте его с помощью Ajax на новую страницу. Например:

```javascript
$('#searchLink').click(function(e) {
   e.preventDefault();
   var serialNumber = $(this).data('serialNumber');
   
   $.ajax({
      url: 'search.php',
      type: 'POST',
      data: { serialNumber: serialNumber },
      success: function(response) {
         var newWindow = window.open('search_results.html');
         newWindow.onload = function() {
            newWindow.$('#searchInput').val(serialNumber);
            newWindow.$('#searchResults').html(response);
         };
      },
      error: function() {
         alert('Ошибка при отправке запроса');
      }
  });
});
```

3. На новой странице (search_results.html) добавьте форму для поиска и блок для отображения результатов поиска. Например:

```html
<form>
   <input type="text" id="searchInput" name="searchInput">
   <button type="submit">Найти</button>
</form>

<div id="searchResults"></div>
```

4. На новой странице добавьте скрипт для обработки поискового запроса и отображения результатов. Например:

```javascript
$('form').submit(function(e) {
   e.preventDefault();
   
   var serialNumber = $('#searchInput').val();
   
   // Обработка поискового запроса и вывод результатов
   $.ajax({
      url: 'search.php',
      type: 'POST',
      data: { serialNumber: serialNumber },
      success: function(response) {
         $('#searchResults').html(response);
      },
      error: function() {
         alert('Ошибка при отправке запроса');
      }
   });
});
```

Таким образом, при клике на ссылку на первой странице, новая вкладка откроется с формой поиска, в которой уже будет заполнено поле с серийным номером. Результаты поиска будут отображены на этой же странице в блоке с id "searchResults".
Привет) 

Ну, можно сделать что-то вроде
1) Нужный номер подставить как query параметр ссылки на стороне js ( htt://page2?number=123 ) или подставить в какое-то поле с id со стороны пхп прежде чем выплюнуть страницу
2) На второй странице
$( document ).ready(function() {
    // если передал через ссылку
    let params = window.location
                       .search
                       .replace('?','')
                       .split('&')
                       .reduce(
                          function(p,e){
                              let a = e.split('=');
                              p[ decodeURIComponent(a[0])] = decodeURIComponent(a[1]);
                              return p;
                          },
                          {}
                      );
    console.log( params);

    // если подставил в поле с бэка
    $("#id").val();
});


и все, дальше вертишь как хочешь, можешь подставить значение в нужную апишку, получить данные и отобразить на странице
У вас 2 разных урла, которые показывают разную информацию. Не совсем понятно, куда и зачем вы отправляете ajax-запрос? Где вы информацию из ответа ajax хотите выводить? 

реально ли, передав с 1-ой страницы через jquery ajax значение серийного номера в скрипт формы 2-ой страницы, вывести результат поиска в новой открытой вкладке?

Если вы хотите осуществить переход с одной страницы на другую, то в вашем контексте ajax теряет свой смысл.

реально ли этот, в ручную осуществляемый, процесс превратить в программно выполняемый, чтоб по нажатию на серийный номер на 1-ой странице открывалась новая вкладка с уже найденными результатами поиска, ну, и сам серийный номер уже значился бы в соответствующем поле формы?

Реально. И вам будет проще сделать серийные номера в виде ссылок и при нажатии на них переходить на 2 урл, передавая значение серийного номера в get-параметре. В скрипте на 2 урле из $_GET тянуть этот серийный номер, ну и дальше делать, то что вам нужно. Можете произвести поиск сразу при переходе, а можете значение подставить в поле формы по-умолчанию.
На странице с серийными номерами каждый серийный сделайте ссылкой на вторую страницу, с аргументом вида server.net/page2.php?serial_id=AA12-34-5678 . 

Соответственно на второй странице сразу делайте поиск этого $_GET['serial_id'], и выводите результат. Ну или если форма нужна-нужна-всенепременнейше - рисуйте эту форму с заполненным из $_GET['serial_id'] полем серийного номера.

Всё!
Похожие вопросы