$ _POST через jquery-php

Когда я пытаюсь переслать значение $ _post через jquery в php-скрипт, я получаю это уведомление: "Уведомление PHP: неопределенный индекс: id"

Я вижу значение id в инструментах разработчика, например. : 'id: 8519/8520/8521/8522' но на сайте сценарий останавливается на позиции $ _POST ['id'].

вот часть кода:

        <button class = "btn btn-danger" id = "export">export xls</button>

        <form action = "baza_site.php" method = "POST">
                        <input type = "text" class = "form-control" placeholder = "Search" name = "search">
                        <button class = "btn btn-default" type = "submit" name = "submit" >
                        <i class = "glyphicon glyphicon-search"></i>
                        </button>
                        </div>
            </div>          
        </form>

<?php

                    require_once 'config.php';

                    $output = '';
                    $page = isset($_GET['p'])? $_GET['p'] : '';
                    if ($page == 'xls'){
                        $myid = $_POST['id'];
                        $id = str_replace(' ', ',', $myid);

                        $sql = "SELECT * FROM baza_site WHERE id IN($id)";
                        if ($result = $mysqli->query($sql)){
                        if ($result->num_rows > 0)
        {

         $output .= '
            <table border = "1">  
              <tr>  
                <th>id</th>  
                <th>site</th>   
                <th>location type</th>  
                <th>city</th>
                <th>address</th>
                <th>access details</th>
                <th>service area</th>
              </tr>
                    ';
         while($row = mysqli_fetch_array($result))
        {
         $output .= '
                <tr>  
                  <td>'.$row["id"].'</td>  
                  <td>'.$row["site"].'</td>
                  <td>'.$row["locationType"].'</td>  
                  <td>'.$row["city"].'</td>  
                  <td>'.$row["address"].'</td>
                  <td>'.$row["accessDetails"].'</td>
                  <td>'.$row["ServiceArea"].'</td>

                </tr>
                    ';
        }
         $output .= '</table>';

  header('Content-Type: application/vnd.ms-excel');
  header("Content-Disposition: attachment; filename = ".'woclosed'.date("Y-m-d_H_i_s").".xls");
  header("Pragma: no-cache");
  header("Expires: 0");
  echo $output;
 }
                    }}

                    require_once 'config.php';

                    if (isset($_POST["submit"])) {
                    $search = mysqli_real_escape_string($mysqli, trim($_POST['search']));
                    mysqli_set_charset( $mysqli, 'utf8');

                    $sql = "SELECT * FROM baza_site WHERE site LIKE '%$search%' OR city LIKE '%$search%' OR address LIKE '%$search%' OR accessDetails LIKE '%$search%' OR ServiceArea LIKE '%$search%' OR locationType LIKE '%$search%'";
                    if ($result = $mysqli->query($sql)){
                        if ($result->num_rows > 0){
                            $ilosc = mysqli_num_rows($result);
                            echo "<b>ilość rekordów : " .$ilosc."</b>";
                            echo "<table id='myTable' class='tablesorter-blackice'>";
                                echo "<thead>";
                                    echo "<tr>";
                                        echo "<th style='text-align:center;' class='filter-false'><input type='checkbox' id='checkall'/></th>";
                                        echo "<th>site</th>";
                                        echo "<th>location type</th>";
                                        echo "<th>city</th>";
                                        echo "<th>address</th>";
                                        echo "<th>access details</th>";
                                        echo "<th>service area</th>";
                                    echo "</tr>";
                                echo "</thead>";
                                echo "<tbody>";
                                while($row = $result->fetch_array()){
                                    echo "<tr>";
                                        echo "<td class='text-center'>"."<input type='checkbox' name='checkboxlist' class='checkitem' value = ". $row['id']."/> </td>";
                                        echo "<td>" . $row['site']. "</td>";
                                        echo "<td>" . $row['locationType']. "</td>";
                                        echo "<td>" . $row['city'] . "</td>";
                                        echo "<td>" . $row['address'] . "</td>";
                                        echo "<td>" . $row['accessDetails'] . "</td>";
                                        echo "<td>" . $row['ServiceArea'] . "</td>";


                                    echo "</tr>";
                                }
                                echo "</tbody>";                            
                            echo "</table>";
                            // Free result set
                            $result->free();
                        } else{
                            echo "<p class='lead'><em>Brak informacji w bazie.</em></p>";
                        }
                    } else{
                        echo "ERROR: Could not able to execute $sql. " . $mysqli->error;
                    }
                    }
                    // Close connection
                    $mysqli->close();
                    ?>  



    </div>
    </div>
                        <script type = "text/javascript">

            $("#myTable").tablesorter({
    headers: {
      0: { sorter: false, parser: false }
    }
});

<script type = "text/javascript">

        $('#checkall').change(function(){
            $('.checkitem').prop("checked", $(this).prop("checked"))
        })

        $('#export').click(function(){
            var id = $('.checkitem:checked').map(function(){
                return $(this).val()
            }).get().join(' ')
            $.post('baza_site.php?p=xls', {id : id})
            });

</script>

Пожалуйста, дайте рабочий код как можно короче. Пожалуйста, обратитесь к здесь

sertsedat 10.07.2018 09:46

Проблема не так очевидна? Вы должны определить переменную с именем $id. Тип $id=''; поверх переменной $output.

Özgür Can Karagöz 10.07.2018 09:55
Стоит ли изучать 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 и хотите разрабатывать...
1
2
27
1

Ответы 1

Глядя на ваш код, мы замечаем, что нет поля ввода с именем id.

правильный формат для работы со значениями формы: $ _ POST ['inputname']

В результате вы обнаружите, что id не определен.

Предполагая, что вы хотите обработать результаты поиска, вы можете вместо этого использовать $ _POST ['search'], поскольку именно так вы назвали свое поле.

Надеюсь, это поможет тебе

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