2012-03-16 2 views
0

Я хотел бы запросить базу данных и загрузить записи из этой базы данных в поля на веб-странице. Тем не менее, единственный способ, которым я в настоящее время знаю, это создать веб-страницу на PHP, которая выполняет запрос, распечатывает его на странице читаемым образом, а затем загружает эту страницу с помощью ajax и анализирует через HTML. Это похоже на очень окольный способ сделать это - так что я могу сделать, что более прямолинейно?Загрузите данные из запроса MySQL на страницу с помощью jQuery

Чтобы было ясно: у меня есть выпадающее меню:

<select name="items" id="items" size=[php variable] onChange="javascript:updatePage()"> 
    <option value="[database entry ID]">[php variable]</options> 
    <option value="[database entry ID]">[php variable]</options> 
<textarea name="stuff" id="stuff"> 
</textarea><br> 

А потом на меня будет:

<script src="jquery.js"></script> 
<script> 
    function updatePage() 
    { 
     var itemToLoad = $('#items').val(); 
     $.ajax({ 
      type: "POST", 
      url: 'updatepage.php', 
      data: "itemtoload=" + itemToLoad, 
      success: function(data) { 
       var stuff = data; 
       stuff = parseWhatINeed(stuff); 
       $('#stuff').text(stuff); 
      } 
     }); 
    } 
</script> 

И updatepage.php делает запрос MySQL, а функция parseWhatINeed анализирует, что мне нужно из html в переменной данных. Есть ли лучший способ обойти это?

+1

Нет, вы поразили гвоздь на голове, используя AJAX. Здесь есть сообщение, в котором говорится о том, что вы пытаетесь сделать: http://stackoverflow.com/questions/2256310/directly-accessing-server-database-via-ajax-without-php-or-some-other-other- intermedi –

ответ

0

Вместо того, чтобы отображать страницу с помощью PHP. Попросите PHP вывести строку JSON, которую вы затем можете интерпретировать с помощью jquery. С помощью JSON вы можете вернуть объект, который будет хранить все необходимые вам данные. Этот метод обычно лучше, потому что для передачи строки JSON потребуется меньше ресурсов и пропускной способности, чем если бы вы перенесли отображаемый HTML.

0

Почему бы вам не попытаться создать объект JSON из данных, которые вы извлекли из своей базы данных, и отправить их обратно в ответ на вызов Ajax, а затем использовать свой javascript для создания/ввода этих значений в HTML. Это быстрее и снижает трафик.

Смежные вопросы