javascript - AJAX 不发送数据,我不能使用 POST 结果

标签 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

编辑2:

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

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

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

Notice: Undefined variable: legeojson in E:\wamp\www\stage_axians\pit_app\carte.php on line 108

最佳答案

我对您的代码进行了一些小的清理。您的点击操作有点错误,要通过名称获取按钮实例,您可以使用 $('[name="var_prj"]') 这意味着 $(this) 将在 click 事件

的主体中准确返回此按钮

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

最后一部分是 AJAX 调用的 data 参数。如果您已经有一个带有键和值的对象,只需将其放入 $.ajax

data 参数
<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 请求后 carte.php$_POST 数组。

Array
(
    [lid] => 60
)

希望我的回答对你有所帮助

关于javascript - AJAX 不发送数据,我不能使用 POST 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54927853/

相关文章:

javascript - Flickity slider 问题,最后一张幻灯片后有空间, slider 继续滚动

javascript - 如何将div固定在页面顶部

php - 无法找到套接字传输 "tls"- 你是不是在配置 PHP 时忘记启用它

php 语法错误 - 初学者

Javascript 表单验证 - 只有第一个字符必须是数字

JavaScript:为什么我不能在类构造函数中指定函数参数名称?

php - MYSQL 记录获取 2 个日期

javascript - 未捕获的语法错误 : Unexpected token x with jQuery plugin?

javascript - 在 Jquery Mobile 中显示可折叠内容时如何隐藏可折叠标题?

javascript - 触发由 javascript 制作的复选框的更改