обновленный
У меня 2 страницы. Индексная страница, связанная с файлом js. Этот js-файл, содержащий ajax-код, извлекает данные из базы данных. это мой js-файл
$(document).ready(function() { // getting links from db andshow sub_menu div // $(".menu_item").mouseover(function(){ $(this).addClass("selected").children().slideDown(500,function(){ var id = $(".selected").attr("id"); var ajax= false; ajax = new XMLHttpRequest(); var qst = "?id="+id; ajax.open("GET","ajax/get_sub_cats.php"+qst); ajax.onreadystatechange = function(){ if(ajax.readyState == 4 && ajax.status == 200){ $(".sub_menu[title="+id+"]").html(ajax.responseText); } } ajax.send(null); }); }); // hiding sub_menu div // $(".menu_item").mouseout(function(){ $(this).removeClass("selected").children(".sub_menu").slideUp(500); }); // keeping sub_menu div visible on mouse over // $(".sub_menu").mouseover(function() { $(this).stop(); }); // clicking sub menu link in the menu // $(document).delegate("a#subCatLink","click",function(){ alert("test"); }); // document ready end });
и это файл get_sub_cats php, используемый для извлечения ссылок из db
<?php require('../_req/base.php'); $id = $_REQUEST['id']; $getSubcatsQ = "select * from sub_cats where Main_Cat_ID = '$id'"; $getSubcatsR = mysql_query($getSubcatsQ); $numrows = mysql_num_rows($getSubcatsR); while($row = mysql_fetch_array($getSubcatsR)){ ?> <a id="subCatLink" href="products.php?id=<?php echo $row['Sub_Cat_ID']; ?>"><?php echo $row['Sub_Cat_Name']; ?></a><br /> <?php } mysql_close($connect); ?>
нажатие ссылок из другого php-файла с помощью ajax не работает вообще
Извините, может быть, это поможет, может быть, и нет. Но…
Почему бы вам не использовать что-то вроде этого:
JQuery
$(".menu_item").mouseover(function(){ var id = $(".selected").attr("id"); var qst = "?id="+id; var html = ''; $.getJSON('ajax/get_sub_cats.php'+qst, function(data){ var len = data.length; for (var i = 0; i< len; i++) { html += '<a id="subCatLink'+data[i].Sub_Cat_ID+'" href="products.php?id='+data[i].Sub_Cat_ID+'">'+data[i].Sub_Cat_Name+'</a>'; } $(".sub_menu[id="+id+"]").html(html); }); });
PHP
require('../_req/base.php'); $return = array(); $id = $_REQUEST['id']; $sql = "select * from sub_cats where Main_Cat_ID = '$id'"; $result = mysql_query($sql); while($ln = mysql_fetch_array($result)){ $return[] = $ln; } echo json_encode($return);
ok попробуйте это
$(document).delegate("click","a",function(){ var target = $(this).attr("href"); alert(target); });
Это должно, как тест, показать href для каждой ссылки на вашей странице. Если это работает, поместите все ссылки, которые вы хотите показать в div. Затем назовите его
$('#divID').delegate("click","a",function(){ var target = $(this).attr("href"); alert(target); })