jQuery Отправить переменную в PHP - PullRequest
0 голосов
/ 12 июля 2020

Пример результатов консоли

Привет, у меня проблема с моим jQuery У меня есть текстовое поле, в котором я хочу выполнить поиск в реальном времени из базы данных без кнопки отправки, активируется, когда Я запускаю функцию showcharges ($ _ GET ["id"], $ sort, $ search), в которой уже есть запрос select SQL. Проблема с ajax заключается в том, что я хочу, чтобы при поиске что-то передавало данные, которые я искал, в переменной php, например $ search as _POST ['search']; на той же странице ... передать эти данные в моем параметре $ search моей функции плюс все это без потери моей строки запроса с указанием c идентификатора клиента в случае фотографии с идентификатором = 63, которая является первым параметром моей function $ _GET ["id"], поэтому я хочу, чтобы ajax сохранил мой $ _get ["id"], а также экспортировал в переменную _post ['search'] слова, которые я искал.

Я не могу заставить его работать ... они не распознают _POST['search'] как POST, поэтому $search; - это unedified

My PHP charge. php, который вызывает функцию Data :: showcharges ($ _ GET ["id"], $ sort, $ search);

  1. $_GET["id"] - это строка запроса с предыдущей страницы, которая показывает указанный c идентификатор клиента в моем запросе (работает ).
  2. $ sort сортирует начисления (активируется, только если не равно нулю, внутри функции)
  3. $ search поисковый запрос для поиска сборов (включает только если не равен нулю, внутри функции)

<?php
    
if (isset($_POST['sort']))
{
 $sort = $_POST['sort'];
}
    
      
 $search = $_POST['search'];
 echo  $search; 
  
?>
    
     
    

$showcharge = Data::showcharges($_GET["id"], $sort, $search);          
        
<input type="text" name="search"  class="txt" />
    <span id="show" name="mytext"></span>
        
   

также, моя форма сортировки, которая сортирует расходы (вы можете увидеть запрос внутри функции, которая также хочу заменить на ajax сортировку жизни и избежать кнопки отправки, и я не хочу, как я могу сделать

      <form action="" method="POST">
            <tr>
                <th> <select name="sort">
    
                        <option value="dateasc">Date Asc </option>
                        <option value="datedesc">Date Desc</option>
                        <option value="asc">Balance Asc </option>
                        <option value="desc">Balance Desc</option>
    
                    </select>
    
                    <button type="submit" name="submit" value="submit">Search</button>
                </th>
            </tr>
        </form>

Мой сценарий, который хочет заменить традиционную кнопку отправки в поле поиска и сделать поиск жизни без кнопки

    <script>
        $(document).ready(function() {

            $('input.txt').keyup(function() {
                var search = $(this).val();
                var val = "<?php echo $_GET['id']; ?>";
                $.ajax({
                    url: "charge.php",
                    type: "POST",
                    dataType: 'text',
                    data: {
                        search: search,
                        val: val
                    },
                    success: function(response) {
                        $('#show').html(search);
                        console.log(search);
                        console.log(val);

                    }
                });
            });
        });
    </script>

Моя php функция, которая полностью работает. из процесса обработки данных. php

    
public static function showcharges($id = null, $sort = null, $search = null)
{    
    $sql = "SELECT id,contact_date,tasks,taskcharges,payment,balance,payment_date,admin,customers_id,comments,created_at";
    
    $sql .= " ,(select (taskcharges-payment) from customers where charges.customers_id=customers.id) as balance";
    
    $sql .= " FROM charges ";
    if (!empty($id)) {
        $sql .= " WHERE customers_id=" . $id;
    }
    
    if (!empty($search)) {  
    
        $sql .= "  AND tasks LIKE '%" . $search . "%' OR comments LIKE  '%" . $search . "%'";
    }
    
    if ($sort == "asc") {   
            $sql .= "  ORDER BY balance ASC ";
        } elseif ($sort == "desc") {
    
        $sql .= " ORDER BY balance DESC ";
        } elseif ($sort == "dateasc") {    
        $sql .= " ORDER BY created_at ASC ";    
    } elseif ($sort == "datedesc") {
                $sql .= " ORDER BY created_at DESC ";
        }
        /* 
        echo $sql;
        die();  */
        $statement = conn()->prepare($sql);
        $statement->execute();
        $customers = $statement->fetchAll();
    
        return $customers;
}

1 Ответ

0 голосов
/ 12 июля 2020

попробуйте так

$.ajax({
   url: "charge.php",
   type: "POST",
   dataType: 'json'
   data: {
      query: search
   },
   success: function(response) {
   $('#show').html(response);
    
   }

});

когда вы отправляете ajax через Jquery и хотите установить метод запроса. u должен использовать "type" и установить данные как JSON, после чего вы можете использовать $_POST в php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...