AJAX не отправляет данные, я не могу использовать результат POST - PullRequest
0 голосов
/ 28 февраля 2019

РЕДАКТИРОВАТЬ:

Я хотел бы иметь значение кнопки на другой странице.Я думаю использовать Ajax, но я не знаю, лучший ли это способ ..

Вот мой Форма:

<form id="form_prj">
    <button class="btn_prj" type="button" name="var_prj" value=60>Afficher</button>
</form>

Вот мой Ajax: projet.php

$(document).ready(function() {
        $(document).on('click', '.btn_prj', function() {
            var sendData = {
                lid: this.value
            };

            $.ajax({
                type: 'POST',
                url: '../pit_app/carte.php',
                cache: false,
                data: {
                    lid: sendData,

                },
                success: function(data) {
                    console.log(data);
                    window.location = './carte.php';
                },
                error: function() {
                    alert("Error Occured");
                }
            });
        });

Здесь get_data.php

<?php
include('fonctions.php');
$connect = connect();
if(isset($_POST["lid"])) {
    $btn_value = $_POST['lid'];
}else{
    echo ("Error");
}
$sql1 = "SELECT row_to_json(fc)FROM (
    SELECT 'FeatureCollection' As type, array_to_json(array_agg(f)) As features 
    FROM (
    SELECT 'Feature' As type, ST_AsGeoJSON(ST_transform(ST_SetSRID(geom, 2154), 
    4326))::json As geometry, row_to_json(n) As properties 
    FROM chambre As n,projet WHERE ST_Contains(zone_etude,geom) and id_projet=" . $btn_value . ") As f)  As fc;";

$result = pg_query($connect, $sql1);
$rs = pg_fetch_array($result);
$legeojson = $rs[0];
?>

Экран ошибок

EDIT2:

Хорошо, я добавил свой запрос к isset, и теперь у меня возникла другая проблема. В моем третьем файле carte.php, куда я включил get_data.php

У меня есть var geojson = </ br> Но мне нужно

var geojson = <?php echo $legeojson;?>;

Примечание: неопределенная переменная: legeojson в E: \ wamp \ www \ stage_axians \ pit_app \ carte.php в строке 108

1 Ответ

0 голосов
/ 28 февраля 2019

Я немного очистил ваш код.Ваше действие по щелчку было немного неправильным, чтобы получить экземпляр кнопки по имени, вы можете использовать $('[name="var_prj"]'), что означает, что $(this) вернет именно эту кнопку в теле события click

Далее,чтобы получить значение из атрибута кнопки value, вы можете использовать $(this).attr('value'), если вы хотите получить значение из тегов input, вы можете использовать простые $(this).val().

И последняя часть - data параметр вашего AJAX вызова.Если у вас уже есть объект с ключом и значением, просто укажите data параметр $.ajax

<form id="form_prj">
    <button type="button" name="var_prj" value=60>Afficher</button>
</form>
$(document).ready(function () {
        $('[name="var_prj"]').click(function () {
            var sendData = {
                lid: $(this).attr('value'),
            };

            $.ajax({
                type: 'POST',
                url: '../pit_app/carte.php',
                cache: false,
                data: sendData,
                success: function (data) {
                    window.location = './carte.php';
                },
                error: function () {
                    alert('Error Occured');
                },
            });
        });
    });

Вот массив $_POST вашего carte.php после отправкиAJAX запрос.

Array
(
    [lid] => 60
)

Надеюсь, мой ответ поможет вам

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