转换`[object Object]`并将其附加到类中。?

时间:2011-09-03 14:47:09

标签: php javascript codeigniter jquery

Q1。如何将[object Object]转换为字词?
LIKE: [object Object] = to => salam

Q2。如何使用(中间)拖曳输入在类.list中附加输出结果搜索[点击后]。
LIKE :如果resulet搜索的值为salam,点击后就会显示为:

EXAMPLE

[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和测试代码给你=&gt; CLICK HERE

更新: json回复:

输出值salam&amp; salavat的PHP代码:[此值由selcet * from ...选择json_encode()}]

萨拉姆:

  

[{ “名称”: “萨拉姆”, “单元”:[{ “name_units”: “萨拉姆”, “price_units”: “74554”, “checkbox_units”:[ “迷你吧”, “mobleman”]}, { “name_units”: “mokhles”, “price_units”: “4851269”, “checkbox_units”:[ “mobleman”, “电视”]},{ “name_units”: “fadat”, “price_units”: “85642”,” checkbox_units “:[” 迷你吧”, “mobleman”, “电视”]}]}]

塞利克巴:

  

[{ “名称”: “塞利克巴”, “单元”:[{ “name_units”: “萨拉姆”, “price_units”: “5452”, “checkbox_units”:空},{ “name_units”: “khobe” “price_units”: “5452545”, “checkbox_units”:[ “迷你吧”, “mobleman”]}]}]

1 个答案:

答案 0 :(得分:1)

我的回答完全基于我在搜索“salam”

时将这个json作为回应的假设
[
    {
        "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/

修改

看到这个小提琴http://jsfiddle.net/BBSyy/1/

另一个编辑

通过grep示例http://jsfiddle.net/BBSyy/3/

查看此小提琴