преобразовать `[object Object]` и добавить его в класс. - PullRequest
0 голосов
/ 03 сентября 2011

Q1. Как можно преобразовать [object Object] в слово?
LIKE: [object Object] = to => salam

Q2. Как добавить результаты поиска результатов поиска [после щелчка по нему] в классе .list с (средним) буксирным вводом.
LIKE : если поиск в результате повторного поиска имел значение salam и после щелчка по немуполучить как:

ПРИМЕР :

[object Object] -> input ... & input ...    
[object Object] -> input ... & input ...
[object Object] -> input ... & input ...

Js:

$('.auto_complete').keyup(function () {
    var dataObj = $(this).closest('form').serialize();
    $.ajax({
        type: "POST",
        dataType: 'json',
        //url: 'http://binboy.gigfa.com/admin/tour_foreign/auto_complete',
        url: 'auto_complete',
        data: dataObj,
        cache: false,
        success: function (data) {
            var id_name = $('.list_autobox_hotel').attr('id');
            $('.list_autobox_hotel').show().html('');
            if (data == 0) {
                $('.list_autobox_hotel').show().html('<p><b>there is no</b></p>');
            } else {
                $.each(data, function (index, value) {
                    $('<p id="' + value.name + '">' + value.name + '</p>').appendTo('.list_autobox_hotel');
                });
                //////////////////////*HERE Q1//////////////////////
                $('.list_autobox_hotel p').bind("click", function (e) {
                    e.preventDefault();
                    var ac = $(this).attr('id');
                    var ok = $.grep(data, function (e) {
                        return e.name == ac;
                    })[0].units;
                    //alert(ok);
                    /////////////*HERE Q2//// for append////////
                    $(ok).appendTo('.list');

                    /////////////HERE Q2*////////////
                    $(this).remove();
                    return false;
                });

                //////////////////////HERE Q1*//////////////////////
                $('body').click(function () {
                    $(".list_autobox_hotel p").hide().remove();
                    $('.auto_complete').val('');
                    $('.list_autobox_hotel').show().html('');
                    $('.list_autobox_hotel').css('display', 'none');
                });

            }
        },
        "error": function (x, y, z) {
            // callback to run if an error occurs
            alert("An error has occured:\n" + x + "\n" + y + "\n" + z);
        }
    });
});

PHP [вставить в базу данных]:

  $units = array();
  $name_units = $this->input->post('name_units');
  $price_units = $this->input->post('price_units');
  $checkbox_units = $this->input->post('checkbox_units');
  foreach ($name_units as $idx=>$name){
      $units[] = array(
    'name_units' => $name_units[$idx],
    'price_units' => $price_units[$idx],
    'checkbox_units' => $checkbox_units[$idx],
      );
  }
 $data = array('name' =>$this -> input -> post('name'),              
               'units' => json_encode($units)
 );

      $this -> db -> insert('hotel_submits', $data);

PHP [выберите код]:

$data = array();
foreach ($query_hotel_search->result() as $row)
{
   $units = json_decode($row->units);
   $data[] = array('name' => $row->name, 'units' =>$units );
}
echo json_encode($data);

DEMO: Здесь есть содержимое базы данных и выходной код PHP и тестовый код для вас => ЩЕЛКНИТЕ ЗДЕСЬ

ОБНОВЛЕНИЕ: json Ответ:

Выходные значения salam & salavat кода php:[эти значения выбираются (selcet * from ...) по json_encode()]

salam:

[{"name": "salam", "units": [{"name_units": "Салам", "price_units": "74554", "checkbox_units": [ "Мини-бар", "mobleman"]}, { "name_units": "mokhles", "price_units": "4851269", "checkbox_units": ["mobleman", "тВ"]}, { "name_units":»fadat "," price_units ":" 85 642 "," checkbox_units ": [" мини-бар "," дворянин "," телевизор "]}]}]

салават:

[{ "имя": "Салаватом", "единицы": [{ "name_units": "Салам", "price_units": "5452", "checkbox_units": нулевая}, { "name_units": "khobe","price_units": "5,452,545", "checkbox_units": ["мини-бар", "дворянин"]}]}]

1 Ответ

1 голос
/ 03 сентября 2011

мой ответ полностью основан на предположении, что вы получаете этот JSON в качестве ответа, когда я искал "salam"

[
    {
        "name": "salam",
        "units": [
            {
                "name_units": "salam",
                "price_units": "74,554",
                "checkbox_units": [
                    "minibar",
                    "mobleman"
                ]
            },
            {
                "name_units": "mokhles",
                "price_units": "4,851,269",
                "checkbox_units": [
                    "mobleman",
                    "tv"
                ]
            },
            {
                "name_units": "fadat",
                "price_units": "85,642",
                "checkbox_units": [
                    "minibar",
                    "mobleman",
                    "tv"
                ]
            }
        ]
    }
]

в итерации обратного вызова success по json, как следует

if (data == 0) {
$('.list_autobox_hotel').show().html('<p><b>there is no</b></p>');
 }
 else
 {
  $.each(data[0].units, function (index, value) {
   $('<p id="' + data[0].units[index].name_units + '">' + data[0].units[index].name_units + '</p>').appendTo('.list_autobox_hotel');
  });

вот демоверсия, надеюсь, вы поймете идею http://jsfiddle.net/BBSyy/

EDIT

смотри эту скрипку http://jsfiddle.net/BBSyy/1/

Другое Редактирование

см. Эту скрипку с примером grep http://jsfiddle.net/BBSyy/3/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...