Get data from php file + ajax

时间:2022-02-01 21:33:43

i want to get data that's loaded in my PHP file in javascript. This is what I do:

我想在javascript中获取我的PHP文件中加载的数据。这就是我做的:

$("#submit").click(function() {
    // GET VALUE OF APPID
    var appid = $("#appid").val()
    // GET JSON FROM PHP SCRIPT
    $.ajax({
        type: 'GET',
        url: '../loadjson.php',
        data: {
            'appid': appid
        },
        success: function (data) {
            alert('success');
        },
        error: function(jqXHR,error, errorThrown) {  
            if(jqXHR.status&&jqXHR.status==400){
                alert(jqXHR.responseText); 
            }else{
                alert("Something went wrong");
            }
        }
    });

});

When I click a button I get the value of a textbox and call ajax function. my javascript file is located in root/js/file.js and my php file in root/loadjson.php

当我单击一个按钮时,我得到一个文本框的值并调用ajax函数。我的javascript文件位于root / js / file.js中,我的php文件位于root / loadjson.php中

My PHP file:

我的PHP文件:

<?php

if(isset($_POST['appid']) && !empty($_POST['appid'])) {
    $appid = $_POST['appid'];
}
$json_url  ='http://api.url.com/api/gateway/call/1.4/getApp?appid=' . $appid;

$ch = curl_init($json_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$str = curl_exec($ch);
curl_close($ch);

$data = json_decode($str);

$array = $data;
$object = $array->app[0]; 

echo $object;

?>

?>

The problem is I get always an alert box with "Something went wrong" but I can't find the solution. Does someone see my fault?

问题是我总是得到一个警告框“出错了”,但我找不到解决方案。有人看到我的错吗?

I get this: Get data from php file + ajax

我明白了:

jsfiddle: http://jsfiddle.net/wKe2U/

jsfiddle:http://jsfiddle.net/wKe2U/

5 个解决方案

#1


3  

You are not preventing your form submission, you are using form and input button submit type. So, while you clicking on that button your form being submit. So, first you stop your form submission in your ajax code.

您没有阻止表单提交,您正在使用表单和输入按钮提交类型。因此,当您点击该按钮时,您的表单将被提交。所以,首先你在ajax代码中停止表单提交。

Second thing is that you are using method get in your ajax code and trying to get values by 'POST' in your php code. So, kindly use $_GET or change ajax code type: 'POST'

第二件事是你在你的ajax代码中使用方法get并尝试通过php代码中的'POST'获取值。所以,请使用$ _GET或更改ajax代码类型:'POST'

Third thing is that your url is invalid you should use url:'loadjson.php'

第三件事是您的网址无效您应该使用网址:'loadjson.php'

here I am sharing code:

我在这里分享代码:

//Ajax code
$(function () {
    $("#submit").click(function (e) {
        // stop form submission first
        e.preventDefault();
        // GET VALUE OF APPID
        var appid = $("#appid").val()
            // GET JSON FROM PHP SCRIPT
            $.ajax({
                type : 'POST',
                url : 'loadjson.php',
                data: {'appid':appid},
                success : function (d) {
                    alert(d);
                },
                error : errorHandler
            });
    });
});

function errorHandler(jqXHR, exception) {
    if (jqXHR.status === 0) {
        alert('Not connect.\n Verify Network.');
    } else if (jqXHR.status == 404) {
        alert('Requested page not found. [404]');
    } else if (jqXHR.status == 500) {
        alert('Internal Server Error [500].');
    } else if (exception === 'parsererror') {
        alert('Requested JSON parse failed.');
    } else if (exception === 'timeout') {
        alert('Time out error.');
    } else if (exception === 'abort') {
        alert('Ajax request aborted.');
    } else {
        alert('Uncaught Error.\n' + jqXHR.responseText);
    }
}

Hope, you understand where you were wrong :)

希望,你明白你错在哪里:)

#2


2  

I am not sure but in your js code I see

我不确定,但在我看到的js代码中

 type: 'GET',

but in your php code use POST method to load value

但在你的PHP代码中使用POST方法来加载值

if(isset($_POST['appid']) && !empty($_POST['appid'])) {
    $appid = $_POST['appid'];
}

#3


0  

Try to give

试着给

url: 'loadjson.php'

url:'loadjson.php'

in your js file

在你的js文件中

#4


0  

You are issuing a GET ajax request, and you are relying on $_POST information in your script, just use $_GET.

您正在发出GET ajax请求,并且您依赖脚本中的$ _POST信息,只需使用$ _GET即可。

You are getting a notice for undefined var $appid, click on the red row in your devtools to see the response you are getting, and associated error code.

您将收到未定义var $ appid的通知,单击devtools中的红色行以查看您获得的响应以及相关的错误代码。

#5


0  

$.ajax({
        type: 'GET',
        url: '../loadjson.php',
        datatype: 'json' ,
        data: {
            'appid': appid
        },
...

#1


3  

You are not preventing your form submission, you are using form and input button submit type. So, while you clicking on that button your form being submit. So, first you stop your form submission in your ajax code.

您没有阻止表单提交,您正在使用表单和输入按钮提交类型。因此,当您点击该按钮时,您的表单将被提交。所以,首先你在ajax代码中停止表单提交。

Second thing is that you are using method get in your ajax code and trying to get values by 'POST' in your php code. So, kindly use $_GET or change ajax code type: 'POST'

第二件事是你在你的ajax代码中使用方法get并尝试通过php代码中的'POST'获取值。所以,请使用$ _GET或更改ajax代码类型:'POST'

Third thing is that your url is invalid you should use url:'loadjson.php'

第三件事是您的网址无效您应该使用网址:'loadjson.php'

here I am sharing code:

我在这里分享代码:

//Ajax code
$(function () {
    $("#submit").click(function (e) {
        // stop form submission first
        e.preventDefault();
        // GET VALUE OF APPID
        var appid = $("#appid").val()
            // GET JSON FROM PHP SCRIPT
            $.ajax({
                type : 'POST',
                url : 'loadjson.php',
                data: {'appid':appid},
                success : function (d) {
                    alert(d);
                },
                error : errorHandler
            });
    });
});

function errorHandler(jqXHR, exception) {
    if (jqXHR.status === 0) {
        alert('Not connect.\n Verify Network.');
    } else if (jqXHR.status == 404) {
        alert('Requested page not found. [404]');
    } else if (jqXHR.status == 500) {
        alert('Internal Server Error [500].');
    } else if (exception === 'parsererror') {
        alert('Requested JSON parse failed.');
    } else if (exception === 'timeout') {
        alert('Time out error.');
    } else if (exception === 'abort') {
        alert('Ajax request aborted.');
    } else {
        alert('Uncaught Error.\n' + jqXHR.responseText);
    }
}

Hope, you understand where you were wrong :)

希望,你明白你错在哪里:)

#2


2  

I am not sure but in your js code I see

我不确定,但在我看到的js代码中

 type: 'GET',

but in your php code use POST method to load value

但在你的PHP代码中使用POST方法来加载值

if(isset($_POST['appid']) && !empty($_POST['appid'])) {
    $appid = $_POST['appid'];
}

#3


0  

Try to give

试着给

url: 'loadjson.php'

url:'loadjson.php'

in your js file

在你的js文件中

#4


0  

You are issuing a GET ajax request, and you are relying on $_POST information in your script, just use $_GET.

您正在发出GET ajax请求,并且您依赖脚本中的$ _POST信息,只需使用$ _GET即可。

You are getting a notice for undefined var $appid, click on the red row in your devtools to see the response you are getting, and associated error code.

您将收到未定义var $ appid的通知,单击devtools中的红色行以查看您获得的响应以及相关的错误代码。

#5


0  

$.ajax({
        type: 'GET',
        url: '../loadjson.php',
        datatype: 'json' ,
        data: {
            'appid': appid
        },
...