我有一个表单,将数据提交到名为'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中的每个对象?
答案 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