通过php和jquery从mysql数据库获取结果的问题

时间:2011-07-06 22:27:14

标签: php jquery mysql dynamic

我尝试实现以下目标:

我通过php生成一个包含两个字段的表(关于培训课程) - 课程的名称和位置。 这个表有几行,我实现了这样的:

        <table border='0' id='testing'>
            <thead>
                <tr class='small_title_bold'>
                    <th>Formation</th><th align='center'>Niveau</th><th align='center'>Ville</th>
                </tr>
            </thead>
            <tbody>        
              <?php
              db_connect();

              if (isset($etablissement)){
                $sql_find_id_etablissement = "select id_etablissement, subdesignation, address1, address2, zip, city, town, department, phone, fax, www from etablissements where designation = '$etablissement' and id_region='$id_region'";
                $result_find_id_etablissement = mysql_query($sql_find_id_etablissement, $connection) or die('error');
                while ($row_find_id_etablissement = mysql_fetch_row($result_find_id_etablissement)){
                $id_etablissement  = $row_find_id_etablissement[0];
                $subdesignation = $row_find_id_etablissement[1];            
                $address1 = $row_find_id_etablissement[2];
                $address2 = $row_find_id_etablissement[3];          
                $zip = $row_find_id_etablissement[4];
                $city = $row_find_id_etablissement[5];
                $town = $row_find_id_etablissement[6];          
                $department = $row_find_id_etablissement[7];            
                $phone = $row_find_id_etablissement[8];
                $fax = $row_find_id_etablissement[9];
                $www = $row_find_id_etablissement[10];

                print "<tr class='small_subtitle_bold'><td colspan='3' align='center'>".$id_etablissement."-". $subdesignation."</td></tr>";        
                $sql_find_master = "select id_master, designation, master_level from masters where id_etablissement = '$id_etablissement' order by designation, master_level";
                $result_find_master = mysql_query($sql_find_master, $connection) or die('error');

                $count=mysql_num_rows($result_find_master);

                for($i = 0; $i < $count; $i++) {                
                    $row_find_master = mysql_fetch_row($result_find_master);
                    $id_master = $row_find_master[0];   
                    $designation = $row_find_master[1]; 
                    $level = $row_find_master[2];
                    if($i % 2) {
                        print "<tr class='univ' bgcolor='#A4D2FD'>";
                        print "<td><a class='univ' href='master-details.php?master-id=".$id_master."&etablissement-id=".$id_etablissement."' onclick='popup('master-details.php?master=".$designation."')>".$designation."</a></td><td class='small_text' align='center'>".$level."</td><td class='small_text' align='center'>".$town."</td>";
                        print "</tr>";
                    }
                    else {
                        print "<tr class='univ' bgcolor='#FFFFFF'>";
                        print "<td><a class='univ' href='#' onClick='javascript:swapContent(".$id_master.",".$id_etablissement.")'>".$designation."</a></td><td class='small_text' align='center'>".$level."</td><td class='small_text' align='center'>".$town."</td>";
                        print "</tr>";          
                    }
                }
            }
        }
        ?>
        </tbody>
    </table>

当用户点击一行时,我想运行一个mysql查询并将结果(课程的详细信息)显示在同一页面中的一个独立位置,而不重新加载页面。

我将以下脚本放在我的头部:

<script language="JavaScript" type="text/javascript">
function swapContent(id_master, id_etablissement) {
var url = "master-details.php";
$.post(url, {id_master: id_master, id_etablissement: id_etablissement} ,function(data) {
          var content = $( data ).find( '#content', function () {alert('Query was performed.');} );
      $( "#queryResults" ).empty().append( content );
});
}
</script>

我希望我的jquery脚本运行一个名为master-details的php文件,其参数为id_master和id_etablissement,并在名为queryResults的DIV部分中返回结果。

然而,当我点击表格中的一行时,没有任何反复发生。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

这样的事情:

jQuery("tr").live("click", function(){
   $.post///what you already have.
});

您只需要一种方法告诉它在您点击时执行某些操作。

答案 1 :(得分:0)

  

...当我点击表格中的一行时,没有任何反复发生。

有些事情发生了,即使它不明显。任务是确切地确定发生了什么,以及为什么它没有产生预期的结果。

您可以采取以下几个步骤来确定实际发生的事情:

  1. 检查Javascript错误。您可以使用Firebug for Firefox或内置的Chrome开发人员工具来查看Javascript控制台。如果发生Javascript错误,它将显示在那里。

  2. 确定PHP脚本是否已执行。您可以通过查看网络服务器的日志,或查看上述工具的“网络”标签来执行此操作。

  3. 如果PHP脚本成功执行,请确定它产生的输出。您可以通过直接运行脚本来完成此操作。找到您的AJAX调用引用的URL,并将其粘贴到浏览器的地址栏中。输出的输出是你预期的吗?

  4. 如果PHP脚本执行并返回适当的结果,请检查您的Javascript选择器。你确定他们引用了正确的div吗?这个div存在吗?