2015-08-28 132 views
1

我必須通過POST傳遞數據到PHP中的函數,問題是他們不檢索數據。

var jsonText = JSON.stringify(origen); 
var jsonTextDestino = JSON.stringify(destino); 
$.ajax({ 
    type: "POST", 
    url:"/lie/controlador/manejo_de_archivos/controlador.php?action=copiar_archivo", 
    data: "origen=" + jsonText + "&destino=" + jsonTextDestino , 
    async: false, 
    dataType: "json", 
    success: function (jsondata) { 
    } 

控制器端PHP

if ($_GET["action"] == "copiar_archivo"){ 
    echo json_encode($controlador-> copiar_archivo($_POST["origen"], $_POST["destino"])); 
} 

功能在PHP中,模型。

function copiar_archivo($path_o, $path_dest){ 
    //some code 
} 

我不知道我是否清楚。

+0

你爲什麼要把'GET'與'POST'混合? – m02ph3u5

回答

2

您的Ajax代碼應該重建是這樣的:(注意對象發送的數據參數)

var my_object = {"origen": origen, "destino":destino}; 
$.ajax({ 
    type: "POST", 
    url:"/lie/controlador/manejo_de_archivos/controlador.php?action=copiar_archivo", 
    data: my_object , 
    async: false, 
    dataType: "json", 
    success: function (jsondata) { 
    } 
)} 

而且,在你的PHP中,你不需要使用GET,因爲你的ajax發送了一個POST請求。因此使GET['action']不相關。

1
var form = new FormData(); 
form.append("key1", "val1"); 
form.append("key2", "val2"); 

var settings = { 
    "async": true, 
    "crossDomain": true, 
    "url": "http://test.com/php.php", 
    "method": "POST", 
    "headers": {}, 
    "processData": false, 
    "contentType": false, 
    "mimeType": "multipart/form-data", 
    "data": form 
} 

$.ajax(settings).done(function (response) { 
    console.log(response); 
}); 

嘗試這樣的事情代碼M8與應幫助你