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
<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
Bài liên quan
chúc bạn vui vẻ
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ỉ?
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
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>