2011-09-01 66 views
0

我是Ajax初學者&我正在使用AJAX獲取記錄。雖然我正在獲取價值,但我的問題是我在回聲中打印表格。因此,如果數據庫中不存在相應的記錄,那麼它將取出空表。如果它爲空,我不想獲取表。 因此,我用mysql_num_rows函數。與在AJAX中檢索值混淆

例如,

我在php文件中檢索記錄爲2 echo聲明。

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

現在JavaScript頁面上再次我只想檢索第一呼應,如果它不是0比只打印表,否則我不希望打印空白值表..這可能嗎?

回答

0

你可以做這樣的事情。

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

這就是我問我將如何區分? –

+0

我描述瞭如何。只需檢查ajax請求返回的內容,如果ajax請求的確切內容爲「false」,則不要對請求執行任何操作。 – Nexerus

+0

我已經爲你添加了一個簡單的例子。 – Nexerus

0

當你要去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 
}); 
+0

如何在javascript中區分? –

+0

我添加了一些例子,希望它有幫助 –