如何从PHP文件中检索JSON数据

How to retrieve JSON-data from PHP-file?

本文关键字:检索 JSON 数据 文件 PHP      更新时间:2023-09-26

我有一个将数据提交到一个名为"submit_link.php"的文件的表单。要提交输入的表单值,我将此功能与jQuery一起使用:

function submitLink() {
    if ($('#lnk_email2').val().length == 0) {
        $.ajax({
            type:'POST',
            url: '<?php echo $setting['site_url'] .'/';?>includes/misc/submit_link.php',
            data:$('#add_link_form').serialize(),
            beforeSend: function() {
                $('#lnk_exch_ini').remove();
                $('#loader_submit').css('display', 'block').html("<img src='<?php echo $setting['site_url'] . $setting['template_url'] .'/';?>images/loader.gif' />");
            },
            error: function() {
            },
            success: function() {
                $('#loader_submit').remove();
            },
            complete: function() {
                $('#lnk_exch_content').load('includes/forms/add_link_form2.php');
            }
        });
    } else {
        //do nothing
    }
    return false;
}

这是submit_link.php的文件:

if ($user['login_status'] == 1) {
    $email = $user['email'];
    $submitter = $user['id'];
}
else {
    $submitter = 0;
}
if (strpos($url, "http://") === false) {
    $url = 'http://'.$url;
}
mysqli_query($con, "INSERT INTO ava_links SET name='$anchor', url = '$url', description = '$description', sitewide = 1, published = 0, 
submitter = $submitter, submitter_email = '$email'") or die (mysqli_error($con));
$link_id = mysqli_insert_id($con);
$referral_link = $setting['site_url'].'/?r='.$link_id;
$step2 = LINK_EXCHANGE_STEP2;

现在我的问题是我希望最后三个变量 $link_id、$referral_link 和 $step 2 通过 json 从服务器返回。我该怎么做?如何在我上面发布的函数 submitLink() 中使用 json 编码的数据?如何访问存储在 json 数据中的每个对象?

创建一个 php 数组:

$output=array('link_id'=>$link_id, 'referral_link'=>$referral_link);

然后:

  echo json_encode( $output):

$.ajax选项中也设置dataType:'json',然后在成功回调中使用 json

尝试使用以下PHP脚本。

<?php
//set header for JSON response
header("Content-Type: application/json");
//render array in JSON format
echo json_encode(array('status' => 200, 'data' => array('link_id'=>$link_id, 'referral_link'=>$referral_link)));

始终在响应中使用状态代码,以检查此响应是否包含成功或错误,根据此状态代码,使用 jQuery 与用户交互。

这是使用jQuery获取JSON响应的完整教程http://zainultutorials.blogspot.in/2013/10/ajax-how-to-retrieve-json-response-from.html