Показать сообщение отдельно
  #1 (permalink)  
Старый 19.01.2012, 11:11
Аспирант
Отправить личное сообщение для wfire Посмотреть профиль Найти все сообщения от wfire
 
Регистрация: 15.05.2011
Сообщений: 36

Ajax-запрос к базе - проблема с передачей переменной
Добрый день!

Нашел в internet очень простой пример выборки из базы mysql без перезагрузки страницы. Приведу оба файла:
proba.php:
<script type="text/javascript">
function showUser(str)
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","getuser.php?qw="+str,true);
xmlhttp.send();
}
</script>

<form>
<select name="user" onchange="showUser(this.value)">
<option value="">Select a person:</option>
<option value="1">Peter Griffin</option>
<option value="2">Lois Griffin</option>
<option value="5">Glenn Quagmire</option>
<option value="15">Joseph Swanson</option>
</select>
</form>
<br />
<div id="txtHint"><b>Person info will be listed here.</b></div>


getuser.php:
<?php
$qw=$_GET['qw'];
//$qw=15;
echo $qw."<br/>";
//функции подключения к базе опускаем
$query = "SELECT users.uid, users.name, users.fullname, users.type, users.prim, users.mtel, users.icq, users.email, users.div_id, users.dolg, users.gender, users.manager, users.born_day, users.born_month, users.deleted FROM users WHERE users.uid='".$qw."'";
    $result = mysql_query($query);


$total_rows = mysql_numrows($result);
echo "Всего-".$total_rows;
echo "<table border='1'>
<tr>
<th>name</th>
<th>fullname</th>
<th>Age</th>
<th>Hometown</th>
<th>Job</th>
</tr>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['name'] . "</td>";
  echo "<td>" . $row['fullName'] . "</td>";
  echo "<td>" . $row['email'] . "</td>";
  echo "<td>" . $row['dolg'] . "</td>";
  echo "<td>" . $row['rtel'] . "</td>";
  echo "</tr>";
  }
echo "</table>";
?>


Суть проблемы: в существующем виде запрос к базе не возвращает ничего. При этом записи с uid 1, 2, 5 и 15 там точно есть. Значение пременной $qw в файл передается, что подтверждается командой echo $qw."<br/>";
Самое интересное, что если вручную назначить $qw=15, то запрос возвращает соответствующую запись.

Не могу разобраться, в чем проблема. Что тут 15, что там 15 вроде....?
Ответить с цитированием