我想在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");
}
}
});
});
当我点击一个按钮时,我得到一个文本框的值并调用ajax函数。 我的javascript文件位于root / js / file.js,我的php文件位于root / loadjson.php
我的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;
&GT;
问题是我总是得到一个警告框“出错了”,但我找不到解决方案。有人看到我的错吗?
我明白了:
jsfiddle:http://jsfiddle.net/wKe2U/
答案 0 :(得分:3)
您正在使用表单和表单提交表单 输入按钮提交类型。所以,当你点击那个按钮时,你的 表格正在提交。所以,首先你要停止你的表格提交 ajax代码。
第二件事是你在你的ajax代码中使用方法get 试图通过PHP代码中的'POST'获取值。所以,请使用$ _GET 或更改ajax代码类型:'POST'
第三件事是你的网址无效你应该使用 网址: 'loadjson.php'
我在这里分享代码:
//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);
}
}
希望,你明白你错在哪里:)
答案 1 :(得分:2)
我不确定但是在你的js代码中我看到了
type: 'GET',
但是在你的php代码中使用POST方法来加载值
if(isset($_POST['appid']) && !empty($_POST['appid'])) {
$appid = $_POST['appid'];
}
答案 2 :(得分:0)
尝试提供
url:'loadjson.php'
在你的js文件中
答案 3 :(得分:0)
您正在发出GET
ajax请求,并且您依赖脚本中的$_POST
信息,只需使用$_GET
。
您收到未定义的var $appid
的通知,点击您的devtools中的红色行,查看您获得的响应以及相关的错误代码。
答案 4 :(得分:0)
$.ajax({
type: 'GET',
url: '../loadjson.php',
datatype: 'json' ,
data: {
'appid': appid
},
...