2009-11-08 34 views
0

我無法獲得預期的結果。使用jQuery/PHP/MySQL獲得一些奇怪的結果

我有以下的jQuery腳本:

// obj is the return result of another query 
    jQuery.post("mypath/include/jquery_bll.php", { instance: 'controllAccess', brandID: obj.id }, 
    function(data) 
    { 
    if (jQuery('#brand_selectList').length == 0) 
    { 
     if (data == "Locked") 
     { 
     jQuery('#countryListBox').attr('disabled','true'); 
     } 
    } 
    }, "text"); 

那麼這樣做,是禁用的選擇框,如果返回結果=「鎖定」。

這是我的PHP代碼,返回結果:

function controllBrandRelation($dal) 
    { 
    // Get label data. 
    $result = $dal->getRowByValue('myTable','id', $_POST['someID']); 

    if (mysql_num_rows($result) > 0) 
    { 
     while ($row = mysql_fetch_array($result)) 
     { 
     $ownerID = $row["fk_userID"];  
     } 
    } 

    if(!empty($ownerID)) 
    echo 'Locked'; 
    else 
     echo 'Open';  
    } 

這將返回「鎖定」如果$ OWNERID具有一定的價值。

這是我的問題:
如果我做一個alert(data.length),我得到的結果72.我真的應該得到6,這是一個詞「鎖定」的字符數。

jQuery.post("mypath/include/jquery_bll.php", { instance: 'controllAccess', brandID: obj.id }, 
    function(data) 
    { 
    alert(data.length); 
    } 

如果我做了alert(jQuery.trim(data).length),我會得到正確的值。

但無論我做什麼,我不能讓這個IF測試裏面:

if (data == "Locked") 
    { 
    jQuery('#countryListBox').attr('disabled','true'); 
    } 

爲什麼數據不等於「鎖定」?

我已經測試過修剪和未修剪的版本。

UPDATE

我已經成功地得到它的工作從文本改變返回的結果,以JSON。 所以現在我檢查(data.status == "locked")是否正常工作。

但我真的很想知道文本的返回結果是76個字符長,當它應該是6。爲什麼我不能匹配/測試結果。

回答

0

首先,我不確定是否在將返回值回顯到AJAX調用函數後終止腳本。你可以彌補這方面通過執行以下操作:

function controllBrandRelation($dal) { 
    // Get label data. 
    $result = $dal->getRowByValue('myTable','id', $_POST['someID']); 
    if (mysql_num_rows($result) > 0) { 
     while ($row = mysql_fetch_array($result)) { 
      $ownerID = $row["fk_userID"];  
     } 
    } 
    echo (!empty($ownerID)) ? 'Locked' : 'Open'; 
    die; 

}

第二,如果你能夠成功地裁減到6的價值,你應該嘗試存儲的價值和使用,在您的支票。你有沒有嘗試提醒你的價值,看看它是否匹配?

jQuery.post("mypath/include/jquery_bll.php", { instance: 'controllAccess', brandID: obj.id }, function(data) { 
    data = jQuery.trim(data); 
    alert(data); 
} 
+0

PHP函數按預期工作,它返回我想要的。我通過迴應結果來測試它。我現在正在寫一個關於我的問題的更新 - 大約3分鐘。 – Steven

+0

如果你在firefox上安裝了firebug,你可以在控制檯檢查你的返回響應,看看它有多少個字符。我沒有看到你的PHP沒有問題,除了controllBrandRelation()函數是否回顯空格之外,是否可以通過該文件中的其他內容來實現? –