使用$ .ajax通过POST将多个参数传递给php函数

时间:2015-08-28 15:37:26

标签: php jquery ajax post

我必须通过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
}

我不知道自己是否清楚。

2 个答案:

答案 0 :(得分: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 :(得分: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,应该帮助你