2012-05-14 4 views
1

«У меня есть JavaScript ассоциативного имя массива„Параметры“JavaScript ассоциативного массива в PHP

<script> 
options[dynamickey] = Number; 
</script> 

и я просто хочу, чтобы отправить этот массив в CodeIgniter модель с помощью JQuery размещать

<script> 
$.('link',options); 
</script> 

Но проблема в том, Я не знаю, как извлечь каждый из ключей и значений этого массива (параметры). Мой JavaScript массив данных выглядит следующим образом

<script> 
    options { 
    id => 135, 
    'Chestnut' => 11, 
    'Cinamon' => 1 
    } 
</script> 

в CodeIgniter (PHP) модель я просто хочу, чтобы извлечь этот массив как этот

<?php 
$id = $this->input->post('id'); 
//below variable names and data should be dynamic from that javascript array 
$chesnut= $this->input->post('dynamic value'); 
?> 

Пожалуйста, помогите мне решить эту проблему.

+0

, как вы можете разместить к вашей модели !! Вам нужен метод контроллера для обработки этого – Broncha

+0

Да, у меня есть контроллер, но в моем посте я просто игнорирую этот шаг –

+0

Знайте, [JavaScript не имеет ассоциативных массивов] (http://andrewdupont.net/2006/05/18/ JavaScript-ассоциативные-массивы рассмотренный безвреден /). У вас есть объект JavaScript со свойствами. Это станет важным, если вы когда-нибудь попытаетесь перебрать элементы или json закодировать «массив», поскольку в зависимости от того, как вы его создаете, он может потерпеть неудачу или получить дополнительные значения тайны. – DampeS8N

ответ

2

в вашем JQuery, вы делаете пост:

var options = { 
    'id' : 135, 
    'Chestnut' : 11, 
    'Cinamon' : 1 
} 

$.post('example.com/index.php/firstsegment/secondsegment',options,function(data){...}); 

в контроллере CodeIgniter, который принимает этот пост:

public firstsegment extends CI_Controller { 

    public function secondsegment(){ 
     $data = $this->input->post(); 

     if($data){ 
      /* 
      $data will contain this: 
      $data = array(
       'id' => '135', 
       'Chestnit' => '11', 
       'Cinamon' => '1' 
      ); 
      */ 
     } 
    } 
} 
+0

спасибо, отличная помощь. –

0

Kinda редкий запрос, чтобы быть откровенным. Вы хотите что-то, что, вероятно, будет сделано вашей системой, чтобы отправить его в вашу систему?

Тем не менее. Добавьте { data : options } вместе с существующими общими значениями в jQuery ajax.

Пример:

var options = { 
    'id' : 135, 
    'Chestnut' : 11, 
    'Cinamon' : 1 
} 

$.ajax({ 
    type: "POST", 
    url: "some.php", 
    data: options 
}).done(function(msg) { 
    alert("Data Saved: " + msg); 
}); 
Смежные вопросы