关于这个主题有很多线程,但我找不到任何使用PHP的线程。我想将json对象传递给视图,稍后我将使用返回的json对象更新元素。 这是我的代码: 视图:
<input type="submit" class="button" name="insert" value="load"/>
<script>
jQuery(document).ready(function() {
var $ = jQuery;
var baseUrl = [location.protocol, '//', location.host, location.pathname].join('');
$('.button').click(function(){
var clickBtnValue = $(this).val();
var ajaxurl = baseUrl+"?action=load";
data = {'action': clickBtnValue};
$.post(ajaxurl, {}, function (result) {
alert(result);
});
});
});
</script>
控制器是:
<?php
set_include_path(get_include_path().':../');
require_once('_inc/common.php');
$action = req('action');
if ($action == 'load') {
$result = parse_ini_file('test.ini');
$json = json_encode($result);
}
[UPDATE] 在提供答案的代码之后,我现在得到一个Json.parse错误。所以我再次编辑了我的代码,但错误仍然存在,我在线查看我的Json是否是一个有效的json并且验证器上没有错误。
$result = parse_ini_file($config_file);
$json = json_encode(array($result),JSON_HEX_QUOT);
var_dump($json);
header('Content-Type: application/json');
查看
var request = $.ajax({
url: ajaxurl,
method: "POST",
data: {},
dataType: "json"
});
request.done(function( msg ) {console.log("d");});
request.fail(function( jqXHR, textStatus ) {console.log( "Request failed: " + textStatus );});
});
答案 0 :(得分:0)
如上所述,您没有输出JSON,也没有设置内容类型。但我注意到了其他一些事情,你没有指定发布请求的返回类型(JSON)。
$.post(url, {}, function (data) {
alert(data);
}, 'JSON');
还要确保编码数组而不是false值,parse_ini_file在失败时返回false。
答案 1 :(得分:0)
试试这个
<script>
jQuery(document).ready(function() {
var $ = jQuery;
var baseUrl = [location.protocol, '//', location.host, location.pathname].join('');
$('.button').click(function(){
var clickBtnValue = $(this).val();
var ajaxurl = baseUrl+"?action=load";
data = {'action': clickBtnValue};
$.post(ajaxurl, {}, function (result) {
var json =JSON.parse(result);
console.log(json); //see in browser console
});
});
});
</script>
控制器是:
<?php
set_include_path(get_include_path().':../');
require_once('_inc/common.php');
$action = req('action');
if ($action == 'load') {
$result = parse_ini_file('test.ini');
echo json_encode($result);
}