2011-11-12 9 views
2

私は、受信した/送信されたすべての電子メールを一覧表示するために、jqueryアコーディオンを使用しています。 ヘッダー(h3 + a)はオブジェクトを示し、内容(div)はメールテキストです。JqueryアコーディオンヘッダーへのSQLリクエストの追加

HTMLアコーディオン:

<div id="accordion"> 
     <div> 
      <h3><a href="#">object 1</a></h3> 
      <div>mail 1 text</div> 
     </div> 
     <div> 
      <h3><a href="#">object 2</a></h3> 
      <div>mail 2 text</div> 
     </div> 
     <div> 
      <h3><a href="#">object 3</a></h3> 
      <div>mail 3 text</div> 
     </div> 
</div> 

アコーディオンスクリプト機能:

$(function() { 
     $("#accordion").accordion({ 
      autoHeight: false, 
      header: "h3", 
      navigation: true 
     }); 
    }); 

問題:

私はメールのヘッダにCLIC場合にのみ、私のSQLデータベースを要求したいと思い、すべてのメールを事前にロードしないようにします。 私の場合には他にも重要なことは、メールを「読み取り」または「未読」とマークすることです。これはSQLデータベースに列があります。だから、彼のアコーデオンのヘッダーがぎこちなくなったら、メールを "読む"状態に変える必要があります。

アコーディオンを使用する前に、私はすべてのページをリロードするシンプルリンクを使用していました。私は、PHP/SQLに問題が何をしたん、しかし、私には、JavaScript/jQueryのではあまり良くないんだけど、またはAJAX ...

SQL要求(簡体字):

$sql = "SELECT mail_object, mail_text FROM table_mail "; 
$req = mysql_query($sql); 

SQL更新読み取り状態(簡略化):

$sql_2 = "UPDATE table_mail SET mail_read=1 "; 
$req_2 = mysql_query($sql_2); 

したがって、ヘッダーをクリックするとこのコードを実行する方法はありますか?

その後、ヘッダースタイルを変更して、読み取り/未読メールを区別する方法(太字や背景イメージ/色を変更する方法)をお尋ねします。

ありがとうございます。

<div id="accordion"> 
    <div> 
     <h3><a onclick=$.post('update_to_read.php') href="#">object 1</a></h3> 
     <div>mail 1 text</div> 
    </div> 

私は今追加してみましょう:この

$("a").one('click', function(){ 
    $.post("url_where_php_query_db_and_update_at_the_same_time", 
    $(this).text(), 
    function(xhr){ 
     var mailText = xhr.responseText; 
     $(this).next("div").text(mailText); //update the mail content 
     //now set your mail to another class 
     $(this).addClass("read"); 
     //you need to have css to set "read" class to different style 
     //e.g. a.read { font-weight: normal;} 
    }); 

答えて

1

メールコンテンツのクエリ。

thx。

+0

セレクタを '#accordion a'に変更したい場合は、そのページに他のリンクがある可能性が高い場合は、 –

+0

こんにちは。しかし、それは動作しません。私もシンプルなリンクと基本的なリクエストでテストしましたが、何も起こっていません...あなたが ";"最後に、右?多分私は見られない他のエラーがありますか? – croc123

+0

はい、 ";"最後に。このコードは、テスト済みの読み込み用ではなく、アイデアを伝えるための単なる方法です。あなたはちょうどアイデアを求めていたのですか? :) – ComfortablyNumb

0

オクラホマについて、ポスト機能は、アコーディオンヘッダー上のonclickで正常に動作するもの ++

関連する問題