繁体   English   中英

通过ajax将变量发送到php

[英]Send variable to php via ajax

我正在尝试通过ajax将输入值发送到php,但似乎无法正确执行。 我正在尝试根据用户输入创建数据表。

这是我的代码:

<input class="form-control" id="id1" type="text" name="id1">

我的JavaScript代码:

<script type="text/javascript">
$(document).ready(function() {

var oTable = $('#jsontable').dataTable();  //Initialize the datatable

    $('#load').on('click',function(){
        var user = $(this).attr('id');
        if(user != '') 
        { 
        $.ajax({
            url: 'response.php?method=fetchdata',
            data: {url: $('#id1').val()},
            dataType: 'json',
            success: function(s){
            console.log(s);
                    oTable.fnClearTable();
                        for(var i = 0; i < s.length; i++) {
                         oTable.fnAddData([
                                    s[i][0],
                                    s[i][1],
                                    s[i][2],
                                    s[i][3],
                                    s[i][4],
                                    s[i][5],
                                    s[i][6],
                                    s[i][7]
                                           ]);                                      
                                        } // End For

            },
            error: function(e){
               console.log(e.responseText); 
            }
            });
        }
    });
});
</script>

我的PHP脚本:

<?php
    $conn = pg_connect(...);
$id1 = $_POST["id1"];
    $result = pg_query_params($conn, 'SELECT * FROM t WHERE id1 = $1 LIMIT 20', array($id1));
    while($fetch = pg_fetch_row($result)) {
        $output[] = array ($fetch[0],$fetch[1],$fetch[2],$fetch[3],$fetch[4],$fetch[5],$fetch[6],$fetch[7]);
    }
    echo json_encode($output);
?> 

我不太了解js,但是我的php是正确的,我对其进行了测试。 所以我想问题出在javascript代码中。 问题是,未根据用户输入创建我的数据表。 谢谢!

更改

data: {url: $('#id1').val()},

至:

type: 'POST',
data: {id1: $('#id1').val()},

但是问题可能更大。 您可能无法从PHP获取正确的数据。 您可以通过将error选项添加到ajax()调用中进行调试,如下所示:

$.ajax({
    url: 'response.php?method=fetchdata',
    type: 'POST',
    data: {id1: $('#id1').val()},
    dataType: 'json',
    success: function(s){
    },
    error: function (xhr, status, errorThrown) {
        console.log(xhr.status);
        console.log(xhr.responseText);
    }
});

然后检查浏览器的控制台的输出,这应该给您来自PHP的某种类型的错误消息。

我的假设是,由于您使用的是dataType: 'json' ,所以ajax请求要求返回JSON标头,但PHP正在发送HTML / Text。 要解决此问题,请在回显JSON之前添加正确的标头:

header('Content-Type: application/json');
echo json_encode($output);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM