2017-05-22 79 views
0

在我的框架中,我有這個工作ajax請求,'reorder_rows'觸發一個函數,該函數返回的'功能達到!'。Ajax dataType Json,無法讓我的數據正確發送。

var data = {}; 
data['reorder_rows'] = 'test'; 
data['token'] = $('input[name="token"]').val(); //req to pass 

$.ajax({ 
    url:'', 
    method:'post', 
    data:data, 
}).done(function(data){ 
    console.log(data); 
}); 

//php 
public function newRowOrder(){ 
    echo 'function reached!'; 
} 

但是當我嘗試使用JSON數據類型我沒有得到響應了發送更多的數據,檢查後什麼地方出了錯$ _ POST [「reorder_rows」] & [「令牌」]似乎並沒有被設置。基本上這個調用什麼也不觸發。我試圖做的是以下幾點:

var new_order = []; 

$('.sortable').children().each(function(i){ 
    new_order.push({ 
     'id':$(this).data('id'), 
     'val':parseInt($(this).find('.overview-number').val()), 
    }); 
}); 

var data = { 
    'reorder_rows': new_order, 
    'token': $('input[name="token"]').val(), 
}; 

$.ajax({ 
    url:'', 
    method:'post', 
    dataType: 'json', 
    data:data, 
}).done(function(data){ 
    console.log(data); 
}); 

我需要去是爲了得到這個職位VAR「reorder_rows」被正確設置,但老實說,上面的代碼聞起來有點腥我..將對象放入並排列成一個對象?

我已經使用Json之前,發送/接收都很好,包括所有的編碼/解碼的東西。但它沒有涉及這樣的數據陣列。這裏是一個工作示例...

data['id'] = $('#id').val(); //used to exclude current item in double checks 
data['form_checks'] = ""; 
data['token'] = $('input[name="token"]').val(); 

$.ajax({ 
    url:'', 
    method:'post', 
    dataType:'json', 
    data:data, 
    success: function(data){ 
     //stuff here is being done 
    } 
}); 

任何人都知道我可以如何從我的概覽行發送數據?我需要每行的ID和(舊)訂單號。該行已經下令在HTML,當我的函數觸發

回答

1

使用json_encode()在PHP代碼返回JSON:

public function newRowOrder() { 
    echo json_encode("function reached!"); 
} 
+0

我希望它是那麼容易:(但可悲的是,從未達到的功能。 $ _POST vars'reorder_rows'&'token'沒有設置,但事實上,在我忘記之前需要做到這一點! –

+0

您使用的是什麼版本的jQuery?在1.9.0版本中添加了'method:'選項,在此之前它被稱爲'type:'。 – Barmar

+0

讀取'$ _POST'變量與返回JSON有什麼關係? – Barmar