2012-03-23 28 views
3

我正在構建某種與mySQL連接的添加/刪除標籤列表。我已經設法從數據庫中獲取標籤以顯示ajax調用,但我無法對它們進行任何操作。甚至沒有一個共同的風格。當我用Firebug檢查所有的html似乎已到位,所以我無法弄清楚什麼是錯的。這裏是我的代碼:爲什麼我的jQuery .css函數不工作?

的jQuery:

$(document).ready(function() { 

    $("#ontvangenjson").css("border","3px solid red"); 


    $.getJSON("jason2.php", function(data) { 

     $.each(data, function(){ 

     var merkTag = " <a class=\"deletemerk\" href="+"http://localhost/website/remove_merk.php?id="+this.pkFavorietemerken+">" + this.merken + "</a>"; 

     $("#ontvangenjson").append(merkTag); 

       }); 

      }); 

     }); 

PHP: jason2.php

$merken_lijst = "SELECT favorietemerken.pkFavorietemerken, favorietemerken.merken FROM favorietemerken JOIN bedrijven ON bedrijven.pkBedrijvenID=favorietemerken.fkBedrijvenID WHERE favorietemerken.fkBedrijvenID=$neem_id"; 


$rows = array(); 
$sth = mysql_query($merken_lijst); 
while($r = mysql_fetch_assoc($sth)) { 
$rows[] = $r; 
} 
print json_encode($rows); 

收到JSON:

[{"pkFavorietemerken":"71","merken":"Nike"},{"pkFavorietemerken":"70","merken":"Le Coq Sportif"},{"pkFavorietemerken":"69","merken":"Converse"},{"pkFavorietemerken":"68","merken":"Champion"},{"pkFavorietemerken":"67","merken":"Adidas"}] 

HTML:

<body> 


    <h1><label for="brands-form-brand">Get JSON data</label> <input type="button" id="knop" value="get JSON" /></h1> 

    <hr /> 

    <p class="section-title"><strong>JSON Data received</strong></p> 


    <div id="ontvangenjson"> </div> 

</body> 

ANSWER

很多之後,很多的研究很多,我finaly解決了這個問題。這段代碼並不是真的錯,但是它的一部分是錯誤的。如果您想使用jQuery .css函數進行任何更改,則需要在getJSON的回調中執行此操作,get.JSON是異步的。

$.getJSON("jason2.php", function(data) { 
    var merkTag = ""; 
    $.each(data, function(){ 
    merkTag += " <a class=\"deletemerk\" href="+"http://localhost/website/remove_merk.php?id="+this.pkFavorietemerken+">" + this.merken + "</a>"; 
    }); 

    $("#ontvangenjson").append(merkTag); 

    // NEW CODE 
    $(".deletemerk").css("border","3px solid red"); 
    }); 

回答

0

我不知道這將解決你的問題,但我會試圖清理你正在做的是鏈接的方式啓動。您可能錯過了一兩個引號。相反逃逸或未能逃脫雙引號的困惑,只是圍繞單引號的字符串:

var merkTag = '<a class="deletemerk" href="http://localhost/website/remove_merk.php?id=' 
       + this.pkFavorietemerken 
       + '">' 
       + this.merken 
       + '</a>'; 

這讓你免費當你建立一個HTML字符串使用雙引號。爲了清楚起見,我在這裏使用了多行代碼。清晰簡潔。

+0

是的我承認我的鏈接不是以一種乾淨的方式創建的,但不幸的是這不是問題。我已經用你的鏈接測試過了。 – 2012-03-23 14:27:11

4

jQuery.css()不支持簡寫屬性(例如border)。

http://api.jquery.com/css/

+0

好吧,這很奇怪,這對我的網頁上的其他元素有效。但我會記住這一點。 – 2012-03-23 05:12:25

1

如果你想使用所有邊境的三個屬性,嘗試獨立定義它們,它可能會解決你的問題。

+0

@Patrik Bhatt,真正的問題似乎是我無法對$(「#ontvangenjson」)進行任何操作,甚至沒有提醒 – 2012-03-23 14:29:37