AJAX不发送数据,我无法使用POST结果

时间:2019-02-28 14:24:04

标签: javascript php jquery ajax

编辑:

我想在另一个页面中添加一个按钮值。 我曾经考虑过使用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];
?>

Error screen

EDIT2:

好的,我将查询添加到了isset中,现在又遇到了另一个问题。 在我的第三个文件carte.php中,其中包含get_data.php

我有var geojson = </ br> 但是我需要

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

注意:未定义变量:legeojson在   第108行的E:\ wamp \ www \ stage_axians \ pit_app \ carte.php

1 个答案:

答案 0 :(得分:1)

我对您的代码做了一些小的整理。您的点击操作有点错误,您可以使用$('[name="var_prj"]')来获取按钮实例的名称,这意味着$(this)会在click事件的主体中完全返回该按钮

接下来,要从按钮value属性中获取值,可以使用$(this).attr('value'),如果要从input标签中获取值,则可以使用简单的$(this).val()。 / p>

最后一部分是您的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');
                },
            });
        });
    });

这是发送AJAX请求后的$_POST的{​​{1}}数组。

carte.php

希望我的回答对您有帮助