2015-08-28 130 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与应帮助你