Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Массив из пхп в JS и обратно через аякс

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
imedia
Отправлено: 12 Апреля, 2016 - 19:15:30
Post Id



Частый гость


Покинул форум
Сообщений всего: 192
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




Здравствуйте есть массив как его передать аяксом в файл обработчик?
PHP:
скопировать код в буфер обмена
  1.  
  2. $products=$_SESSION['cart']->get_products();
  3. $name=$products;
  4. $email=$_SESSION['customer_email_address'];
  5. $json = json_encode($name);
  6. ?>
  7.  

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. <script>
  3. function ajax_post(){
  4.     // Create our XMLHttpRequest object
  5.     var hr = new XMLHttpRequest();
  6.     // Create some variables we need to send to our PHP file
  7.     var url = "/server/mail.php";
  8.         var fn = eval('<?php echo $json;?>');
  9.        
  10.     var ln = document.getElementById("mymail").value ;
  11.     var vars = "firstarray="+fn+"&email="+ln;
  12.     hr.open("POST", url, true);
  13.     // Set content type header information for sending url encoded variables in the request
  14.     hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  15.     // Access the onreadystatechange event for the XMLHttpRequest object
  16.     hr.onreadystatechange = function() {
  17.             if(hr.readyState == 4 && hr.status == 200) {
  18.                     var return_data = hr.responseText;
  19.                        
  20.             }
  21.     }
  22.     // Send the data to PHP now... and wait for response to update the status div
  23.     hr.send(vars); // Actually execute the request
  24.    
  25. }
  26. </script>
  27.  


Так я получаю в обработчике string(15) "[object Object]"

PHP:
скопировать код в буфер обмена
  1.  
  2. $post=$_POST['firstarray'];
  3. var_dump($post);
  4.  

(Отредактировано автором: 12 Апреля, 2016 - 19:17:08)

 
 Top
difight
Отправлено: 13 Апреля, 2016 - 18:17:57
Post Id



Посетитель


Покинул форум
Сообщений всего: 355
Дата рег-ции: Нояб. 2011  


Помог: 3 раз(а)




json обратно декодируйте когда он из аякса пришел json_decode и дальше работайте, насколько я помню после декодирования объекты получаются.
 
My status
 Top
imedia
Отправлено: 13 Апреля, 2016 - 18:28:14
Post Id



Частый гость


Покинул форум
Сообщений всего: 192
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




дело в том что не приходит json
я пишу var_dump ($_POST);
и вижу array(0) {}
 
 Top
difight
Отправлено: 13 Апреля, 2016 - 18:37:14
Post Id



Посетитель


Покинул форум
Сообщений всего: 355
Дата рег-ции: Нояб. 2011  


Помог: 3 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $.ajax({
  3.         type: "POST",
  4.         url: "/ajax/user_org",
  5.         data: 'user_id='+user_id,
  6.         success: function(msg){
  7.                 //успешно отправено                                                                        
  8.         }
  9. });
  10.  

Можете попробовать через Jquery так отправить, я много где использую работает в комментариях строки думаю не нуждются все понятно и так

(Отредактировано автором: 13 Апреля, 2016 - 18:37:57)

 
My status
 Top
imedia
Отправлено: 13 Апреля, 2016 - 18:48:43
Post Id



Частый гость


Покинул форум
Сообщений всего: 192
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. array(2) {
  3.   ["firstarray"]=>
  4.   string(15) "[object Object]"
  5.   ["email"]=>
  6.   string(19) "imediasun@gmail.com"
  7. }
  8.  


тут я получаю вот такой массив но он не реагирует на $json = json_decode($_POST["firstarray"]);
 
 Top
difight
Отправлено: 13 Апреля, 2016 - 18:51:42
Post Id



Посетитель


Покинул форум
Сообщений всего: 355
Дата рег-ции: Нояб. 2011  


Помог: 3 раз(а)




а зачем вы используете eval ? вот тут?

что у вас вообще в переменно fn ?
 
My status
 Top
imedia
Отправлено: 13 Апреля, 2016 - 18:59:15
Post Id



Частый гость


Покинул форум
Сообщений всего: 192
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




да как не используй, можно просто '<?PHP echo $json;?>'
все равно в пхп я вижу следующее
Array
(
[firstarray] => [object Object]
[email] => imediasun@gmail.com
)
но вот так NULL
$json = json_decode($_POST['firstarray']);
 
 Top
IllusionMH
Отправлено: 14 Апреля, 2016 - 12:05:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




imedia, а кто-то должен сконвертировать объект в JSON за вас?
JS приводит объект к строке и получается так
CODE (javascript):
скопировать код в буфер обмена
  1. '1' + ({}) //"1[object Object]"


JSON.stringify в помощь
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB