Создание структуры таблицы с использованием JQuery - PullRequest
0 голосов
/ 31 июля 2009

В моем приложении есть страница просмотра, в которой в качестве заголовка отображается таблица с именем Атрибутов и ее значением, заполненное многими людьми ниже. Как

Name Age salary
  a   22  18912
  b   23   89972
  c   23    781273

я хочу это как выше ..
Но я получаю это как

Name Age Salary
 a   22  18912  b 23 89972 23 781273

Я использую JQuery для получения этих значений из моей таблицы Mysql и из кода контроллера Cakephp, чтобы просмотреть его ..

<head>
  <script type="text/javascript">
    $(document).ready(function(){
      var ht = $.ajax({
        type: "GET",
        url: "http://localhost/FormBuilder/index.php/admins/viewEntries/"+formid,
        async: false
      }).responseText;
      var myObject = eval('(' + ht + ')');
      var data = myObject;var last;
      $.map(data.labels, function(i){
        last=i.label;
        $("<th>"+i.label+"</th> ").appendTo("#headers");
      return i.label;});

      var htm = $.ajax({
        type: "GET",
        url: "http://localhost/FormBuilder/index.php/admins/viewResults/"+formid,
        async: false
      }).responseText;
      var myObject1 = eval('(' + htm + ')');
      var data1 = myObject1;
      $.map(data1.values, function(i){
        $("<td>"+i.value+"</td> ").appendTo("#body");
        if(last==i.label){
          // where i thought to create a new row for 2 row
        }
      return i.value;});
    });
  </script>
</head>
</body>
  <table class="entries" cellspacing="0" cellpadding="3" border="1">
    <tr id="headers"></tr>
    <tr id="body"></tr>
  </table>
</body>

Как создать новую строку для отображения значений 2-й и 3-й строк в новой строке .. Пожалуйста, предложите мне .....

Ответы [ 2 ]

1 голос
/ 31 июля 2009

Глядя на ваш код, меня поражает пара вещей:

У вас есть закрывающий тег тела после заголовка. Однако рассмотрите возможность размещения вашего JS в отдельном файле. Добавьте ссылку на скрипт прямо над вашим последним закрывающим тегом тела (хорошо бы добавить его как можно ближе к нижней части страницы)

Вы используете eval (). Я предполагаю, что переменная htm - это JSON? Вы можете рассмотреть возможность использования JSON.parse () из json2.js, доступного на JSON.org.

Посмотри, покачивается ли ты на этом посте. Почему использование функции eval в JavaScript - плохая идея?

В противном случае приведенного выше ответа должно быть достаточно. Вы можете присвоить таблице идентификатор, так как этот селектор самый быстрый.

С такими дополнениями лучше всего построить весь ваш html в цикле, а затем добавить его в одну операцию.

1 голос
/ 31 июля 2009

Для создания новой строки используйте

$('table.entries').append('<tr></tr>');

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

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