2013-11-01 2 views
1

Я должен отправить размер позиции и их родительские детали в JQuery AJAX и получить их PHPобъекты Разместить в JQuery Ajax

Мой код: -

$("#save").click(function(){ 
     var pos=[]; 
     $(".dr").each(function(index){ 
     dragId=$(this).attr("id"); 
     topPos=$("#"+ dragId).position().top; 
     left=$("#"+ dragId).position().left; 
     dragLeft=left/10; 
     dragLeft=dragLeft ? dragLeft:0; 
     dragTop=topPos/10; 
     dragTop=dragTop ? dragTop :0; 
     dragWidth=$("#"+dragId).width(); 
     dragHeight=$("#"+dragId).height(); 
     parentDivWidth=$("#"+dragId).parent().width(); 
     parentDivheight=$("#"+dragId).parent().height(); 
     parentDivClass=$("#"+dragId).parent().attr("class"); 
     var obj = {}; 
     obj = {left: dragLeft,top :dragTop,dragWidth:dragWidth,dragHeight:dragHeight,parentDivWidth:parentDivWidth,parentDivheight:parentDivheight,parentDivClass:parentDivClass}; 
     pos[$(this).attr("id")]=obj; 
    }) 
    $.ajax({ 
      type: "POST", 
      url:"<?php echo Yii::app()->request->baseUrl?>/index.php/BillSettings/savePositions", 
      data:{pos:pos}, 
      dataType:'html', 
      success: function(res){ 
       console.log(res); 
      } 
     }) 



}); 

PHP код

var_dump($_REQUEST); 

Но я не могу получить значение $ _REQUEST или $ _REQUEST ['pos']. Любая помощь должна быть оценена.

+0

Для тестирования попробуйте передать простую статическую строку как значение 'pos' и проверить, работает ли она с этим. Вам, возможно, придется сериализовать ваш массив JS. – TiMESPLiNTER

+0

Это работает, и мы получаем ответ на успех. – Prince

+0

Продвинутый 'var obj = {};' не работает. Попытайтесь сохранить простую строку как значение массива вместо объекта и снова посмотрите на ответ 'var_dump()'. – TiMESPLiNTER

ответ

0

ЯШ:

$.ajax({ 
    type: "POST", 
    data:{pos: JSON.stringify(pos}, 
    //... 

PHP:

var pos = json_decode($_REQUEST['pos']); 
var_dump(pos); 

Является ли это то, что вы хотите?

0

конвертируйте объект, который вы хотите передать через AJAX в строку

$.ajax({ 
      type: "POST", 
      url:"<?php echo Yii::app()->request->baseUrl?>/index.php/BillSettings/savePositions", 
      data: JSON.stringify(pos), 
      dataType:'html', 
      success: function(res){ 
       console.log(res); 
      } 
     }) 

затем в PHP

$pos = json_decode($_REQUEST['pos']); 
0

ЯШ:

$.ajax({ 
     type: "POST", 
     url:"<?php echo Yii::app()->request->baseUrl?>/index.php/BillSettings/savePositions", 
     data:{"pos":pos}, 
     cache: false, 
     success: function(res){ 
      console.log(res); 
     } 
    }) 

PHP:

$post=$_POST["post"]; 
Смежные вопросы