View Full Version : AJAX and how it is used
Preech
07-27-2014, 05:59 PM
I have been working on a mod for about a month now, I won't disclose the details as of now.
Anyway, the only issue I am having is load content after click a link. I don't even know where to start with how vbulletin and ajax are working.
Could someone just give me a quick lesson on how it is used in the php files, and how it is called in the templates. Help is greatly appreciated.
Well, I'm not an expert on the subject so hopefully someone else will give a more complete answer, but the short answer is that you could look at ajax.php to see the server side stuff. In fact, you could put your response code in a plugin using hook ajax_start. On the browser side, it's handled in the .js files that are in the clientscript directory, so the templates just include a js file. I didn't follow all the code but it looks like the heart of it is a call to YAHOO.util.Connect.asyncRequest().
Preech
07-28-2014, 02:00 PM
Okay. I have started looking in the js files
--------------- Added 1406567535 at 1406567535 ---------------
I still don't see how it's being used within the templates....I'm really lost.
--------------- Added 1406569933 at 1406569933 ---------------
Okay. I got it. Seems I didn't need to use that after all. I finally figured out what I was doing wrong. I decided to just use this. I am using this to show templates without leaving from the page.
<div id="intro-tekst">Intro text here !</div>
<div class="boxes" id="coke">Coke is awesome!</div>
<div class="boxes" id="bubble-tea">Bubble tea is da bomb!</div>
<div class="boxes" id="milk">Milk is healthy!</div>
<br />
<p>
I change my mind:
<ul>
<li><a href="javascript:void(0);" class="link coke">Coke</a></li>
<li><a href="javascript:void(0);" class="link bubble-tea">Bubble Tea</a></li>
<li><a href="javascript:void(0);" class="link milk">Milk</a></li>
</ul>
</p>
<script type="text/javascript">
$(document).ready(function() {
var url = window.location.href;
var option = url.match(/option=(.*)/);
if (option !== null) {
$(".link ." . option[1]).trigger('click');
}
$(".link").bind('click', function () {
$('#intro-tekst').hide();
$('.boxes').hide();
$('.link').removeClass('selected');
$(this).removeClass('link');
$('#' + $(this).prop('class')).show();
$(this).addClass('link selected');
});
});
.boxes {
display: none;
}
.selected {
border : solid 0.5px grey;
border-radius : 5px;
color : grey;
}
I am posting this example code...so hopefully it will be useful for someone else to work off. It's not mine, but I found this by searching google.
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.