Ajax / JSON извлечение и массивы для создания n числа делений для n количества заметок, полученных из базы данных (php, sql) - PullRequest
0 голосов
/ 18 декабря 2011

Я не нашел учебник / объяснение, которое касается этой стороны проблемы 'php array -> jQuery'. (Или тот, который я понимаю, я новичок во всем этом: S)

Рабочий код, но не создание n делений для n заметок

У меня есть рабочий SQL в файле PHP:

$sql = "SELECT * FROM notes WHERE username = '$uname' and notetype = 'todo'";
$result = mysql_query($sql,$conn);
$i = 0;
while($row = mysql_fetch_assoc($result))
{
    $notes[$i] = $row['note'];
    echo json_encode($notes[$i]);
    $i += 1;        

}

Что будет успешно отображаться в элементе div / DOM (!?) через Ajax:

$.ajax({
    url:'getnotestodo.php',
    data: "",
    datatype: 'json',       
    success: function(data)
    {
        $('<div class="stickit" />').text(data).appendTo('#stickitholder');

    }
}); 

Но, очевидно, проблема, с которой я столкнулся, заключается в том, что все это отражается в одном новом <div class="stickit">, то есть "note1", note2 "note3" и т. Д. - каждая нота в одном div, а не в одном новом div для каждого нового обратите внимание.

Текущее мышление (неудачное мышление ...)

Итак, я пытаюсь заполнить массив jQuery массивом PHP, чтобы запустить клиентскую часть цикла while, чтобы создать новый div для каждого индекса с данными этого индекса - этот процесс, но в цикле:

$('<div class="stickit" />').text(data).appendTo('#stickitholder'); 

Я предполагал, что json_encode() по всему массиву PHP вернет объект, который jquery сможет использовать одну из функций типа map(). Но у меня ужасные сбои сценария, приводящие к ужасным попыткам устранения неполадок и сбоям, и я нахожусь в полном тупике.

PHP:

$sql = "SELECT * FROM notes WHERE username = '$uname' and notetype = 'todo'";
$result = mysql_query($sql,$conn);
$i = 0;
while($row = mysql_fetch_assoc($result))
{
    $notes[$i] = $row['note'];          
    $i += 1;        
}
json_encode($notes[]);

немного другой jQuery:

$.ajax({
    url:'getnotestodo.php',
    data: "",
    datatype: 'json',       
    success: function(data)
    {
        $('<div class="stickit" />').text(data).appendTo('#stickitholder');
              var notesarray = new Array();
              notesarray = data;
              while (notesarray.length >= 0){
                  $('<div class="stickit" />').text(data).appendTo('#stickitholder');
              }
    }
});

Я учусь по ходу дела, но сейчас никуда не пойду, так что помощь будет очень цениться.

1 Ответ

0 голосов
/ 18 декабря 2011

Проблема, с которой вы сталкиваетесь, заключается в том, что вы пытаетесь передать много объектов json за один ответ.Так что javascript не сможет распознать его как объект json.Ваш объект будет выглядеть следующим образом:

[1,2,3][2,3,1]

Теперь вы все делаете правильно (немного). У вас могут быть такие элементы:json_encode ($ notes []) в json_encode ($ notes)

...