PDA

View Full Version : ajx include URL is missing folder when following link



inflatablemouse
11-24-2010, 08:36 PM
1) Script Title:
Ajax Include

2) Script URL (on DD):
http://www.dynamicdrive.com/dynamicindex17/ajaxincludes.htm

3) Describe problem:

Hi all,

I am using the following code on a custom action page on a SMF board.


<?php

if (!defined('SMF'))
die('Hacking attempt...');

function kb() {
global $context;
$context['killboard'] = 'Elysian Empires\' Death \'n Destruction Page';

function template_main() {
echo '
<script type="text/javascript">

/***********************************************
* Ajax Includes script- Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

//To include a page, invoke ajaxinclude("afile.htm") in the BODY of page
//Included file MUST be from the same domain as the page displaying it.

var rootdomain="http://"+window.location.hostname

function ajaxinclude(url) {
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.open(\'GET\', url, false) //get page synchronously
page_request.send(null)
writecontent(page_request)
}

function writecontent(page_request){
if (window.location.href.indexOf("http")==-1 || page_request.status==200)
document.write(page_request.responseText)
}
</script>

<script type="text/javascript">
ajaxinclude(rootdomain+"/kb/index.php")
</script>
';

}
}

?>

The problem is that the page initially loads fine but when I click a link on the page loaded the URL is not correct. To clarify:

The custom action URL is smf.bijkersworld.com/index.php?action=kb //this page contains the code above.

When I click a link on the included page it wants to load /index.php?a=search. This should be /kb/index.php?a=search.

I'd appreciate any help with this.

Thanks in advance.

ddadmin
11-25-2010, 06:59 PM
Make sure the links inside the included Ajax page are absolute URLs (versus relative), ie:


http://mysite.com/kb/index.php?a=search (instead of just /kb/index.php?a=search)

This would avoid any issue with the final URL being modified based on the directory structure of the page that's showing the Ajax page.

inflatablemouse
11-26-2010, 11:44 AM
Thanks.

I tried that, the only location where I could do that is in the line

var rootdomain="http://"+window.location.hostname

Changed to

var rootdomain="http://smf.bijkersworld.com/kb"

This gives me a popup with error message:
error: the xajax javascript component could not be included. perhaps the url is incorrect?

url: common/xajax_js/xajax_core.js

Any ideas what is going on?