Ajax PHP Jquery - 回显数据

11

我在从我的PHP文件中获取数据方面遇到了问题。我猜我并不真正理解这个jquery函数的数据参数,所以我只是按照一些教程进行操作。

Jquery

$.ajax(
    {
        url: 'test.php',
        dataType: 'text',
        data: {test: '1'},
        success: function(data)
        {
            window.alert(data);
        }
    })

根据我的理解,test:声明了在php中使用的变量,1是该变量的值。但我不是完全确定...

这是我的PHP代码:

$item1 = $_POST['test'];

    echo $item1;

现在它只是应该警示那个值,以便我知道它至少返回了一些内容,但在警示框中它却是空白的,所以我在某个地方丢失了这个值,但是在哪里呢?

8个回答

18

使用$_REQUEST,它可以同时处理GETPOST

$item1 = $_REQUEST['test'];

默认情况下,ajax请求是GET类型,如果需要显式指定类型,请使用如下方式:

$.ajax(
    {
        url: 'test.php',
        type:'POST'
        dataType: 'text',
        data: {test: '1'},
        success: function(data)
        {
            window.alert(data);
        }
    })

或者使用$_GET,例如:

item1 = $_GET['test'];

    echo $item1;

啊!原来它一直在我的面前。不过默认情况下是GET方法这一点很好。谢谢你! - Howdy_McGee

5

正确的方式:

<?php
$change = array('key1' => 'blabla', 'key2' => '12432rr424234');
echo json_encode($change);
?>

然后是 jQuery 脚本:
<script>
$.get("location.php", function(data){
  var mydata= $.parseJSON(data);
  var art1 = mydata.key1;  // <-----------  access the element
});
</script>

2

这对我来说是工作内容

Ajax 代码

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
        <title>Test Page</title>
        <script>
            $.ajax(
                    {
                        url: 'test.php',
                        type: 'POST',
                        dataType: 'text',
                        data: {latitude: '7.15588546', longitude: '81.5659984458'},
                        success: function (response)
                        {
                            alert(response);
                        }
                    });
        </script>
    </head>
    <body>
    </body>
</html>

PHP 代码(test.php)

<?php

$lat = $_REQUEST['latitude'];
$lon = $_REQUEST['longitude'];

echo 'latitude- '.$lat . ', longitude- ' . $lon;
?>

0

我已经为此苦苦挣扎了一段时间,我的问题不在于js,而是在php脚本中:错误报告设置为E_ALL - 显然阻止它向AJAX调用返回数据。 我猜测它会在最终的echo之前打印通知并阻止所有内容。 奇怪的是,在我设置的日志中没有打印任何通知,以便找到问题的根源。

将其更改为E_ERROR,现在像魅力一样工作。


0

如果你想从 PHP 文件中获取信息,我认为数据字段是不必要的。这是我的代码。

                $.ajax(
                {
                    url: 'response.php',
                    type: 'get',
                    dataType:'text',
                    success: function(data){
                        window.alert(data);
                    }
                }

至于 PHP 方面...

<?php
   echo "1";
   echo "2";
   echo "3";
   echo "4";
   echo "5";
   echo "6";
   echo "7";
   echo "8";
?>

在执行时弹出警告框


0

添加POST方法:

$.ajax(
    {
        url: 'test.php',
        dataType: 'text',
        type: 'post',
        data: {test: '1'},
        success: function(data)
        {
            window.alert(data);
        }
    })

0

你忘记了在发送数据到你的 PHP 文件时指定使用 POST/GET 方法。

$.ajax(
    {        
        type:'POST',        
        url: 'test.php',
        dataType: 'text',
        data: {test: '1'},
        success: function(data)
        {
            window.alert(data);
        }
    })

0
 just add "type" POST or GET     

 //example
 $.ajax(
{
    url: 'test.php',
    type: 'POST',
    data: {test: '1'},
    success: function(data)
    {
        window.alert(data);
    }
})

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接