2011-12-15 10 views
0

これは非常に基本的な質問ですが、過去1時間ウェブをクロールした後でもコードを修正する方法がわかりませんでした。 データベースのカテゴリに関する情報を含む順序のないリストがあり、cat_idは主キーです。と外来のキーとしてcat_idとの件名テーブル、だから私は与えられたカテゴリーIDのためのajaxリクエストを介して主題のテーブルにアクセスしたい。以下は、カテゴリを生成するために使用したコードです。私は立ち往生していた場合、私は.. urlパラメータに一意のIDを送信するためにフェッチしたDOM要素を知っている おかげでいけない...ajaxを介してphamsにパラメータを渡す

<ul id="search_form"> 
     <?php 
     $cat = Category::find_all(); 
     foreach($cat as $category) { 
      echo '<li id="'; 
      echo $category->cat_id; 
      echo '"><a href="subject.php?id='; 
      echo $category->cat_id; 
      echo'">'; 
      echo $category->category; 
      echo '</a></li>'; 

     } 

     ?> 
    </ul> 
    <div id="results"> 
     <!-- ajax contents goes here --> 
    </div> 

Ajaxのファイルが

window.onload = init; 
    function init() { 
     if (ajax) { 
     if (document.getElementById('results')) { 
      document.getElementById('search_form').onclick = function() { 

      ajax.open('get', 'subject.php?id='+id); // subject.php?id= 
      // how will i pass the variable 
      ajax.onreadystatechange = function() { 
       handleResponse(ajax); 
      } 
      ajax.send(null); 
      return false; 
      } 
     } 
     } 
    } 
    function handleResponse(ajax) { 
     if (ajax.readyState == 4) { 
     if ((ajax.status == 200) || (ajax.status == 304)) { 
      var results = document.getElementById('results'); 
      results.innerHTML = ajax.responseText; 
      results.style.display = 'block'; 

     } 
     } 
    } 

でされており、 the subject.php

<?php 
    //include("tpl/header.php"); 
    include("includes/initialize.php"); 
    ?> 
     <h2></h2> 
     <?php 
      if (isset($_GET['id'])) { 
       $id= mysql_real_escape_string($_GET['id']); 
       $subject = Subject::find_subject_for_category($id); 
       foreach($subject as $subj) { 
        echo $subj->subject_title; 
       } 
      } else { 
       echo "No ID Provided"; 
      } 
     ?> 

答えて

2

私はJqueryを使ってこのようなことを行いました。

$.ajax({ 
    type: GET, 
    url: "subject.php", 
    data: {id: $('#search_form :selected').val()}, 
    success: function(result){ 
    // callback function 
    } 
}); 
+0

よく、私はjqueryものに慣れていません..私は成功する必要がありますか? – XoR

+0

これは、ajax呼び出しが成功した場合にのみトリガーされるコールバック関数です。コードを記述したり、タスクを実行する他の関数を呼び出して、ajax呼び出しが返す「結果」を返します。空白のままにすることもできます。 {id:$( '#search_form:selected') – tmjam

+0

$( "#search_form")をクリックします(function {){ $ .ajax { タイプ:GET、 url: "subject.php"、 .val()}、 成功:機能(結果){ $( "#結果")HTML(結果); //コールバック関数 } });} //このdoesntの仕事.. – XoR

関連する問題