2015-03-06 7 views
0

Я настраиваю сайт, содержащий страницу, которая будет содержать много кнопок. Я хочу, чтобы нажимать на кнопку, чтобы заполнить div информацией из базы данных.Отображение содержимого базы данных PHP в div

Я адаптировал некоторый код, который у меня был ранее, но он не работает.

Источник яваскрипт и HTML показаны здесь:

<script> 
function showBiog(key) { 
//alert(key); 

     // Get the search value 
     var search_value = key 

     // This time we're going to grab data from a file to display 
     var filename = "functions/biography.php"; 

     // Send these values 
     var posting = $.post(filename, { search_term: search_value }); 

     // Display this value in our results container 
     posting.done(function (data) { 
      $("#test_results").empty().append(data); 
     }); 

} 

</script> 

<style type="text/css"> 
.test { 
    background-color: #B32D2F; 
    border: thin solid #DBB2B3; 
    height: 50px; 
    width: 250px; 
} 
.testresults { 
    background-color: #88B32D; 
    border: thin solid #DBB2B3; 
    height: 50px; 
    width: 250px; 
} 
</style> 
</head> 

<body> 
<div class="test" onClick="showBiog(1)"><p>1</p></div> 
<div class="test" onClick="showBiog(2)"><p>2</p></div> 
<div class="test" onClick="showBiog(3)"><p>3</p></div> 
<div class="test" onClick="showBiog(4)"><p>4</p></div> 
Results 
<div class="testresults" id="test_results"></div> 

HTML, из biography.php является

<body> 

<?php if (! $_POST["search_term"]) { ?> 
    <div class="err"> 
     <?php echo $row_Recordset1['firstname']; ?> 
    </div> 

<?php } else { ?> 

<?php echo $row_results['firstname']; }?> 

</body> 

SQL, для результатов в Dreamweaver является

SELECT * 
FROM pilots 
WHERE key LIKE colname 

with colname $_POST['search_term'] 
+0

Sidenote: «ключ» - это зарезервированное ключевое слово MySQL, требующее особого внимания http://dev.mysql.com/doc/refman/5.5/ru/reserved-words.html - Если вы хотите использовать " ключи ", то есть и тот. Под «особым вниманием» я подразумеваю, что это имя столбца в тиках '\' 'в противном случае вы получите синтаксическую ошибку. –

+0

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

+0

Извините, Джорди, не знаю, что еще мне нужно - вы можете разработать – user2406993

ответ

0

Немногие вещи ...

  1. Возможно, вам не понадобится «var search_value = key», если вы не внесете никаких изменений или дополнений в него. Просто используйте «ключ» в $ .post (держите код простым).
  2. Ожидается, что в «ключ»? В зависимости от того, что вы отправляете, оператор var posting = $ .post (имя файла, {search_term: search_value}); может сломаться из-за требований структуры JSON.

Для обеспечения вы отправляете нужную информацию на PHP, вы должны попробовать что-то вроде $ .post (имя файла, JSON.stringify ({ 'search_term': клавиша}));

На стороне PHP вы можете использовать unserialize() для декодирования данных JSON, а затем обработать запрос.

Просто небольшая личная записка и совет: если JSON не сформирован на стороне POST, PHP ничего не получит, и он ничего не вернет. Вы должны всегда стараться: log или показать данные, полученные PHP при написании вызовов AJAX, чтобы гарантировать, что он был правильно принят. В противном случае вы можете преследовать ошибку в неправильном месте. ;)

+0

Спасибо Хулио, не совсем взломали его, но дали мне пищу для размышлений. – user2406993