2015-04-06 3 views
1

У меня есть таблица на моем сайте и выпадающий список на моем веб-сайте, который в соответствии с выбранным значением из выпадающего списка изменит вывод таблицы. Я сделал поиск, и я нашел this on stackoverflow, и я попытался сделать что-то подобное, но он не работает. Вот мой php-файл, называемый объявлениями, которые я хочу отобразить в таблице.onChange функция изменения отображаемых данных из таблицы

<?php 
include_once 'header.php'; 
$connection = mysql_connect("localhost", "root", "smogi")?> 

<html> 
<head> 
<script type="text/javascript" src="javascript.js"></script> 
</head> 
<body> 
<?php 
$result = queryMysql("SELECT * FROM doctor WHERE username='$username'"); 
if (mysql_num_rows($result)): 
?> 
<!-- Koumpi pou se metaferei sti selida gia tin dimiourgia neas anakoinwseis --> 
<form action="new_announcement.php"> 
<input type="submit" value="Create New Announcement"> 
</form> 
<br /> 

Select Category :<select id="SelectDisease" name="category"> 
<option value="*">All</option> 
<!--emfanizei tis epiloges gia ta specialties me basi auta p exoume sti basi mas --> 
<?php 
$sql = mysql_query("SELECT name FROM disease"); 
while ($row = mysql_fetch_array($sql)) { 
echo "<option value='" . $row['name'] . "'>" . $row['name'] . "</option>"; 
} 
?> 
</select><br><br /> 

<table border="1" style="width:100%"> 
<tr> 
<td><b>Author</b></td> 
<td><b>Category</b></td> 
<td><b>Subject</b></td> 
<td><b>Content</b></td> 
</tr> 
<?php 
if(isset($_GET["selected"])){ 

$type = $_GET["selected"]; 
$query = "SELECT author,category,subject,content FROM announcements WHERE category='" . $type . "'"; 
$announcements = mysql_query($query, $connection); 
$counter = 0; 
$z = 0; 
if ($announcements == FALSE) { 
die(mysql_error()); // To get better errors report 
} 
while ($row = mysql_fetch_assoc($announcements)) { 
while ($row = mysql_fetch_assoc($announcements)) { 
$counter++; 
?> 
<tr> 
<td><?php echo $row['author'];?></td> 
<td><?php echo $row['category']; ?></td> 
<td><?php echo $row['subject']; ?></td> 
<td><?php echo $row['content']; ?></td> 
</tr> 
<?php } 
} 
} 
?> 
<?php 
else: 
?> 

Select Category :<select id="SelectDisease" name="category"> 
<option value="*">All</option> 
<!--emfanizei tis epiloges gia ta specialties me basi auta p exoume sti basi mas --> 
<?php 
$sql = mysql_query("SELECT name FROM disease"); 
while ($row = mysql_fetch_array($sql)) { 
echo "<option value='" . $row['name'] . "'>" . $row['name'] . "</option>"; 
} 
?> 
</select><br><br /> 

<table border="1" style="width:100%"> 
<tr> 
<td><b>Author</b></td> 
<td><b>Category</b></td> 
<td><b>Subject</b></td> 
<td><b>Content</b></td> 
</tr> 
<?php 
if(isset($_GET["selected"])){ 
$type = $_GET["selected"]; 
$query = "SELECT author,category,subject,content FROM announcements WHERE category='" . $type . "'"; 
$announcements = mysql_query($query, $connection); 
$counter = 0; 
$z = 0; 
while ($row = mysql_fetch_assoc($announcements)) { 
$counter++; 
?> 
<tr> 
<td><?php echo $row['author'];?></td> 
<td><?php echo $row['category']; ?></td> 
<td><?php echo $row['subject']; ?></td> 
<td><?php echo $row['content']; ?></td> 
</tr> 
<?php } } endif;?> 
</table> 
</body> 
</html> 

И это мой javascript.js файл

$(document).ready(function() { 
    $('#SelectDisease').change(function() { 
var selected=$(this).val(); 
    $.get("announcements.php?selected="+selected, function(data){ 
     $('.result').html(data); 

    }); 
    }); 
}); 

Спасибо за ваше время :)

PS: include_once КОД создать соединение с БД й

+1

Включите отчет об ошибках и, выполнив запрос, проверьте наличие ошибки MySQL. Очень возможно, что $ объявления ложны, потому что ваш запрос не удался. – kainaw

+0

mysql_select_db(); вы забыли – Saty

+0

@satishrajak i выберите мою базу данных из 'include_once 'header.php';' – DogFace

ответ

1

Первое, что если ваш пользователь не делает выбор, вы не имеете любые $ _GET доступны, так что будет неопределенным. Вы должны получить значение, если оно доступно. Нравится так:

if(isset($_GET['selected'])){ 
    $type = $_GET['selected']; 
} 

Но это не единственная проблема здесь. $.get - это запрос ajax, и он просто отправляет запрос в ваш php-файл и получает все содержимое html вашей страницы.

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

Пример того, что вы сказали, что вы пытаетесь сделать что-то подобное, не отправляет $.get запрос на ту же страницу, что и пользователь. Он отправляет запрос на получение другой php-страницы, которая предназначена только для того, чтобы получить $_GET["selected"] со своего URL-адреса, отправить запрос в базу данных, получить результат из базы данных, а затем просто вернуть результат, который будет data в вашем $.get запрос.

Смотрите этот пример: Get data from mysql database using php and jquery ajax

Он пытается сделать то же самое, как вы, за исключением $.POST, которые вы можете сделать то же самое или изменить его на $.GET, если вы хотите. Посмотрите, как другая php-страница возвращает результат и как запрос $.get получает и просматривает данные.

0

mysql_query() приведет к FALSE, который является булевым значением, если есть какая-либо ошибка, проверьте перед while цикл, чтобы получить лучшую ошибку,

if($announcements == FALSE) { 
    die(mysql_error()); // To get better errors report 
} 

while($row = mysql_fetch_assoc($announcements)){ 
    // then you code here 
} 
+0

Давайте продолжим обсуждение в чате (http://chat.stackoverflow.com/rooms/74568/discussion-between-niklakis-and-raja). – DogFace

0

mysql_query() возвращает FALSE в случае возникновения ошибки. Вы должны выбрать имя базы данных. Как так:

$connection = mysql_connect("localhost", "root", "smogi", "***DATABASE_NAME***"); 

Помните, что функции MySQL устарели! Используйте mysqli или PDO.

имеют хороший день

+0

У меня есть связь с базой данных. – DogFace

+0

Не могли бы вы добавить var_dump вашего объекта $ connection? –

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