2015-02-04 2 views
0

Ранее я задавал аналогичный вопрос, но я не смог найти ничего, что могло бы помочь мне. Теперь я обновил свой код до чего-то работающего, но теперь я полностью застрял.Создать divs, связанные с объектами

Это мой PHP код:

class person { 
    public $name; 
    public $SE; 
    private $SD; 

    function __construct ($n, $s1, $s2) { 
     $this->name = $n; 
     $this->SE = $s1; 
     $this->SD = $s2; 
    } 
} 

$Obj = new person ("ExampleName", 5, 5); 

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

В противном случае я могу создавать divs из списка имен, но не из объектов. Итак:

  1. Мне нужен способ, чтобы использовать Еогеасп петли для создания дивы по каждому объекту (человеку).

  2. Мне нужны эти divs, связанные с (связанным) с этим человеком.

Спасибо за любую помощь

ответ

5

Не уверены, что вы подразумеваете под дивами, связанные с этим человеком, но для первой задачи это должно работать.

Допустим, у вас есть массив объектов, названных $ OBJS

foreach($objs as $obj) 
{ 
    echo "<div>".$obj->name."</div>"; 
} 
2

я не уверен, что это то, что вы ищете, но это должно работать:

// create an array of persons, I'm assuming that SE or SD is 
// unique for each object 
$persons = (
    new person("Allan", 1, 1); 
    new person("Bobbo", 2, 2); 
    new person("Cicci", 3, 3) 
); 

Объекты могут быть отсортированы по имени, используя usort():

usort($persons, function($a, $b) { 
    return $a->name > $b->name; 
}); 


// loop through each object and output a div 
// notice that the id will be unique and based on 
// the `SE` member of the object, you can then reference 
// a specific div from javascript $('#person-1') etc 
foreach ($persons as $person) { 
    print '<div class="person" id="person-' . $person->SE . '">' . $person->name . '</div>'; 
} 

Использование jQuery вы могли бы получить OBJE кар на основе уникального ID:

$(document).ready(function() { 
    $('.person').click(function() { 
    $.ajax('object.php', { 
     type: 'post', 
     data: 'id=' + $(this).attr('id').substr(7), 
     dataType: 'json', 
     success:function(obj) { 
     alert('You clicked on ' + obj.name + ' ' + obj.SE + ' ' + obj.SD); 
     } 
    }); 
    }); 
}); 

Вы искали бы в вас $persons массив, чтобы найти объект с соответствующим SE (или как вы DESIDE использовать как уникальный идентификторов) значение:

// object.php 
if (isset($_POST['id'])) { 
    $id = intval($_POST['id']); 
    foreach ($persons as $person) { 
    if ($person->SE == $id) { 
     // return json object 
     print json_encode($person); 
     break; 
    } 
    } 
} 
Смежные вопросы