我尝试实现以下目标:
我通过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部分中返回结果。
然而,当我点击表格中的一行时,没有任何反复发生。
非常感谢任何帮助。
答案 0 :(得分:0)
这样的事情:
jQuery("tr").live("click", function(){
$.post///what you already have.
});
您只需要一种方法告诉它在您点击时执行某些操作。
答案 1 :(得分:0)
...当我点击表格中的一行时,没有任何反复发生。
有些事情发生了,即使它不明显。任务是确切地确定发生了什么,以及为什么它没有产生预期的结果。
您可以采取以下几个步骤来确定实际发生的事情:
检查Javascript错误。您可以使用Firebug for Firefox或内置的Chrome开发人员工具来查看Javascript控制台。如果发生Javascript错误,它将显示在那里。
确定PHP脚本是否已执行。您可以通过查看网络服务器的日志,或查看上述工具的“网络”标签来执行此操作。
如果PHP脚本成功执行,请确定它产生的输出。您可以通过直接运行脚本来完成此操作。找到您的AJAX调用引用的URL,并将其粘贴到浏览器的地址栏中。输出的输出是你预期的吗?
如果PHP脚本执行并返回适当的结果,请检查您的Javascript选择器。你确定他们引用了正确的div吗?这个div存在吗?