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

时间:2013-10-27 19:46:31

标签: javascript php jquery ajax json

我有一个表单,将数据提交到名为'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;

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

2 个答案:

答案 0 :(得分:3)

创建一个php数组:

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

然后:

  echo json_encode( $output):

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

答案 1 :(得分:2)

尝试使用以下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与User进行交互。

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