将params通过ajax传递给php

时间:2011-12-15 18:17:44

标签: php ajax

我知道这是一个非常基本的问题,但即使在网页抓取过去1小时后我也无法解决如何修复代码的问题。 我有一个无序列表,其中包含有关数据库中类别的信息,其中cat_id为主键。以及cat_id作为其外键的主题表,因此我想通过给定类别ID的ajax请求访问主题表。下面是我用来生成类别的代码。我被困的地方是,我不知道要获取哪个DOM元素以便在url参数中发送唯一ID。 谢谢..

    <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';

        } 
      } 
    } 

和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";
            }
        ?>

1 个答案:

答案 0 :(得分:2)

我使用Jquery来做这些事情,它对我来说很好。

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