Как получить значения в функции js из html - PullRequest
0 голосов
/ 15 января 2019

Я получаю некоторые данные из базы данных в формате HTML, используя php. Мне нужно передать ключ функции JS, но я не могу сделать.

Мне нужно передать field_id в функцию updateRecords() js, используя функцию onClick() кнопки html в коде ниже. Как я могу это сделать?

Раньше я использовал тот же код для отправки значения напрямую php. это было немного прямо вперед. Теперь, чтобы реализовать ajax, мне нужно пройти через js, который застрял в этом коде. Я пробовал разные решения, но пока безуспешно.

Вот мой код:

html / php:

<?php
    try {
        $stmt = $conn->prepare("SELECT field_id, description, corner_points, notes FROM fields");
        $stmt->execute();

        $stmt->setFetchMode(PDO::FETCH_ASSOC);
        foreach($stmt->fetchAll() as $row) {
        ?>
          <tr>
                <td style='width:150px;border:1px solid grey;'><?= $row['field_id'] ?></td>
                <td style='width:150px;border:1px solid grey;'><?= $row['description'] ?></td>
                <td style='width:150px;border:1px solid grey;'><?= $row['corner_points'] ?></td>
                <td style='width:150px;border:1px solid grey;'><?= $row['notes'] ?></td>
                <td style='width:150px;border:1px solid grey;'><button class="btn btn-primary btn-sm" name="submit2" type="submit" onclick="updateRecords()">Edit</button></td>
            </tr>
        <?php
        }
    }

Вот получение js:

function updateRecords(field_id) {
    // get values
    //var field_id = $("#field_id").val();

    // Update the details by requesting to the server using ajax
    $.post("ajax/edit-field.php", {
            field_id: field_id,

        },
        function readRecords (data, status) {
            // reload Users by using readRecords();
            readRecords();
        }
    );
}

EDIT

Я тоже так пробовал (mentioned in answer1), но это не удалось. Не удалось, я имею в виду, я получил ошибку, ' Notice: Undefined variable: field_id in C:\ajax\edit-field.php on line 43 '.

Это код, который я использую в edit-field.php для получения field_id от js. Вы видите это, плз.

редактирование-field.php

<?php

    if(isset($_GET["field_id"])) //used too if(isset($_POST["field_id"]))       
      {
       $field_id = $_GET["field_id"]; // same here with same results
    }
     try {
            $stmt = $conn->prepare("SELECT field_id, description, corner_points, damming_level_distance_map, pipeline_distance_map, notes FROM fields where field_id = $field_id");
            $stmt->execute();
            $stmt->setFetchMode(PDO::FETCH_ASSOC);
            foreach($stmt->fetchAll() as $row)
            { }
        }

        catch(PDOException $e) {
            exit('<b>Catched exception at line '. $e->getLine() .' (code : '. $e->getCode() .') :</b> '. $e->getMessage());
        }
        ?> 

1 Ответ

0 голосов
/ 15 января 2019

Подпись метода вы ищете field_id в качестве аргумента, но вы никогда не печатаете его в html, при генерации на стороне сервера измените следующую строку:

        <td style='width:150px;border:1px solid grey;'><button class="btn btn-primary btn-sm" name="submit2" type="submit" onclick="updateRecords()">Edit</button></td>

до

    <td style='width:150px;border:1px solid grey;'><button class="btn btn-primary btn-sm" name="submit2" type="submit" onclick="updateRecords(<?= $row['field_id'] ?>)">Edit</button></td>

Имейте в виду, что если ваш field_id не число, а строка, вы должны заключить его в кавычки, чтобы избежать появления синтаксической ошибки.

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