10/10/2018, 00:14

Giúp về nhận biết link ở AJAX

tình cờ xem dc 1 tài liệu trên mạng về thủ thuật nhận dạng link trong ajax nhưng vẫn có điều mình thắc mắc... vậy xem code dưới đây trước nhá các bạn:

<html><title>PHP BASIC - AJAX SIMPLE </title>
<body>
<script>
loadstatustext = 'Loading...';
function ajaxLoad(url,id)
{
if (document.getElementById) {
var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
}
if (x)
{
x.onreadystatechange = function()
{
el = document.getElementById(id);
el.innerHTML = loadstatustext;
if (x.readyState == 4 && x.status == 200)
{
el.innerHTML = x.responseText;
}
}
x.open("GET", url, true);
x.send(null);
}
}
</script>

<div id="hienthi">Day la noi dung file can hien thi</div>

<script>
var url = window.location.href;
if(url.indexOf('#news,')!=-1) c_url = url.split('#news,');
id = c_url?c_url[1]:'#news,';
ajaxLoad('noidung.php?id='+id,'hienthi');
</script>
<a href="#news,1" onClick="ajaxLoad('noidung.php?id=1','hienthi');"> 1</a> <br>
<a href="#news,2" onClick="ajaxLoad('noidung.php?id=2','hienthi');"> 2</a> <br>
<a href="#news,3" onClick="ajaxLoad('noidung.php?id=3','hienthi');"> 3</a> <br>
<a href="#news,4" onClick="ajaxLoad('noidung.php?id=4','hienthi');"> 4</a>
</body>
</html>

file noidung.php

<?php
print $_GET['id'];
?>

===========================

nếu như vậy thì các từ sau dấu #news, sẽ dc nhận biết và dc file noidung.php nhận giá trị rồi in ra màng hình...
VD: noidung.php?id=1 <=> #news,1 --> in ra màng hình là số 1 và tương tự với các số còn lại!

Vậy cho mình hỏi code trên nếu làm đúng như vậy thì giá trị nhận dc chỉ có 1 biến mà thôi! Vậy nếu mình có link như vầy #news,1,5 <=> noidung.php?id=1&page=5 thì phải làm sao
Làm sao để nhận thêm dc 1 giá trị là số 5 nữa Xin nhờ các bạn giúp
herofit viết 02:30 ngày 10/10/2018
bạn xem cách sử lý của XtreMedia tại http://donganh.vn/nhac/#News,/GL/Kinh-doanh/

chúc bạn vui vẻ
diepnghitinh viết 02:16 ngày 10/10/2018
Được gửi bởi herofit
bạn xem cách sử lý của XtreMedia tại http://donganh.vn/nhac/#News,/GL/Kinh-doanh/

chúc bạn vui vẻ
hướng dẫn chi tiết hơn dc ko bạn
sacroyant viết 02:27 ngày 10/10/2018
Chẳng qua là xử lý chuỗi thôi mà bạn. Như với chuỗi "#news,1,5" trong ví dụ bạn đưa, dấu "," có thể xem là separator. Bạn dùng split trút tất cả vào 1 mảng...
diepnghitinh viết 02:16 ngày 10/10/2018
Được gửi bởi sacroyant
Chẳng qua là xử lý chuỗi thôi mà bạn. Như với chuỗi "#news,1,5" trong ví dụ bạn đưa, dấu "," có thể xem là separator. Bạn dùng split trút tất cả vào 1 mảng...
Mình dùng split lấy tất cả các giá trị phía sau # ... dc ko bạn?
http://yourdomain.het/#1,5
_ Lấy giá trị phí sau # ==> 1,5
_ Lấy giá trị phía sau , ==> 5

sau đó dùng hàm (int) để biến giá trị 1,5 thành 1 !
đã thử thành công nhưng ko biết có lỗi ko nhỉ?
herofit viết 02:20 ngày 10/10/2018
tốt nhất để link dạng sau
http://yourdomain.het/#cate=1&sub=5

viết 1 hàm load tất cả vào 1 mảng
-> giả sử là $GET
$GET['cate']=>1
$GET['sub']=>5
như vậy ta có thể dùng link như bình thường và vẫn khắc phục nhược điểm hiện hữu của ajax
phamduyvt viết 02:29 ngày 10/10/2018
Tui thì làm theo cách này
trong hàm function ajaxLoad(url,id) tui thêm 1 biến nữa
thành ajaxLoad(url,id,param)
{
...
....
if(param.length>0)
url=url+param
}
Và trong link
<a href="#news,4" onClick="ajaxLoad('noidung.php','hienthi','?id=1&b ien1=value1&bien2=value2');"> link</a>
Bài liên quan
0