Путаница с получением значения в AJAX - PullRequest
0 голосов
/ 01 сентября 2011

Я новичок в Ajax и использую AJAX для извлечения записей. Хотя я получаю значения, но моя проблема в том, что я печатаю таблицу в эхо. Таким образом, если соответствующая запись отсутствует в базе данных, она также получит пустую таблицу. И я не хочу получать таблицу, если она пуста. Для этого я использовал функцию mysql_num_rows.

Например.

Я получаю запись в виде 2 эхо-операторов в файле php.

echo mysql_num_rows();
echo "table.... some code"; to fetch out table.

Теперь на странице JavaScript снова я хочу получить только первое эхо, которое, если оно не 0, чем только печать таблицы, в противном случае я не хочу печатать пустую таблицу значений. Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 01 сентября 2011

Вы можете сделать что-то вроде этого.

Send Ajax request ->
  if Ajax request returns "false"
    do nothing
  else
    show table

И в вашем файле PHP

if num_rows > 0
  output rows
else
  echo "false"

Вот пример использования jQuery

файла PHP:

<?php
$query = mysql_query("SELECT * FROM table");

if (mysql_num_rows($query) > 0) {
  while($row = mysql_fetch_assoc($query)) {
    echo $row['column'] . "<br />";
  }
} else {
  echo "false";
}
?>

Ajax-запрос

req = $.get('ajax/get.html', function(data) {
  if data !== "false" {
    $('.result').html(data);
  }
});
0 голосов
/ 01 сентября 2011

Когда вы звоните AJAX, вы можете сделать только один echo.

Возможно, вы захотите echo что-то вроде:

echo mysql_num_rows().'|'."table.... some code";

Тогда на стороне javascript вы split('|') данные с сервера.

РЕДАКТИРОВАТЬ:

Решение 1 Простое решение

PHP сторона

$num_row = mysql_num_rows();
$data = 'Something';

echo $num_row.'|'.$data;

Javascript

$.post('getThePhpSideData.php', function(data){
    var aData = data.split('|'); // creates an array
    var numrows = aData[0];
    var html  = aData[1]
});

Решение 2 Решение JSON

PHP сторона

$json = array();
$json['num_row'] = mysql_num_rows();
$json['data']    = 'Something';

echo json_encode($json);

Javascript

$.post('getThePhpSideData.php', function(data){
    var obj = $.evalJSON(data);
    var numrows = obj.num_row; //where num_row is the array associative key from php
    var html  = obj.data;      //where data is the array associative key from php
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...