Forum Moderators: open

Message Too Old, No Replies

Error in Bannerads Rotation

         

calabar

1:22 pm on Apr 7, 2014 (gmt 0)

10+ Year Member




I am stuck with the AJAX ( Country, State, City ) DropDown List so I decided to look
at another JQUERY AJAX ROUTINE (BANNERADS ROTATION ) for a while.
I got an error that BANNERADS of object is not a function.







<script src="//code.jquery.com/jquery-1.10.2.js"></script>

<SCRIPT LANGUAGE="JavaScript">

$(document).ready( function(){

BANNERADS();
function BANNERADS(){
$.getJSON( "http://localhost/AJAXPHP/JQUERY/BANNERADS/BANNERADS.PHP", function(ADS){
var LINK = $("<A>");
LINK.attr( "HREF" , ADS.ADVERTISERURL );
var BANNER = $("<IMG>");
BANNER.attr( "SRC", ADS.IMAGEURL );
BANNER.attr( "WIDTH" , "200" );
BANNER.attr( "HEIGHT" , "200");
LINK.append(BANNER);
$("#BANNERADS").append(LINK);
});
}
window.setInterval("BANNERADS()", 5000);

});
</SCRIPT>


#########################################################################
#########################################################################

BANNERADS.PHP

<?php
$mysqli = new mysqli( "localhost", "root", "","ajaxdbf");
$result = mysqli->query( "SELECT * FROM BANNERADS ");
$ROW_CNT = $result->num_rows;
$RANDOMNUMBER = rand( 1, $ROW_CNT );
$SQLADS = " SELECT * FROM BANNERADS ";
$SQLADS.= " WHERE BANNERADID =" . $RANDOMNUMBER;
$FBANNERADS= $mysqli->query( $SQLADS );
while ( $ROW = $FBANNERADS->fetch_array()){
$ADS = array(
'IMAGEURL' => $ROW["IMAGEURL"],
'ADVERTISERURL' =>$ROW["ADVERTISERURL"]
);
}
echo(json_encode($ADS ));
?>

Fotiman

1:46 pm on Apr 7, 2014 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member Top Contributors Of The Month



1. Don't include the language attribute on script tags. It's invalid, and doesn't do anything.

2. You're calling BANNERADS() before you've defined the function. That's an error (you can't call a function before it's been defined). This is probably where you're getting the error.

3. Don't pass a string to setInterval, pass a function reference instead. So instead of this:

window.setInterval("BANNERADS()", 5000);

do this:

window.setInterval(BANNERADS, 5000);


4. $SQLADS.= " WHERE BANNERADID =" . $RANDOMNUMBER;
That code is only reliable if BANNERADID is guaranteed to contain consecutive integers. If you ever delete a row in that table, then this code could try to find a row that doesn't exist. I'd consider changing that code to be less fragile.

calabar

4:16 pm on Apr 7, 2014 (gmt 0)

10+ Year Member



JQUERY AJAX ROUTINE (BANNERADS ROTATION )
I got an error that BANNERADS IS NOT DEFINED.

<HTML>
<HEAD>
<STYLE>
#BANNERADS {
position : absolute;
top : 1px ;
left : 60% ;
width : 40% ;
height : 300px
}
</STYLE>






<script src="//code.jquery.com/jquery-1.10.2.js"></script>

<SCRIPT>

$(document).ready( function(){

function BANNERADS(){
$.getJSON( "http://localhost/AJAXPHP/JQUERY/BANNERADS/BANNERADS.PHP", function(ADS){
var LINK = $("<A>");
LINK.attr( "HREF" , ADS.ADVERTISERURL );
var BANNER = $("<IMG>");
BANNER.attr( "SRC", ADS.IMAGEURL );
BANNER.attr( "WIDTH" , "200" );
BANNER.attr( "HEIGHT" , "200");
LINK.append(BANNER);
$("#BANNERADS").append(LINK);
});
window.setInterval(BANNERAD, 5000);

}
});
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT>
BANNERADS();
</SCRIPT>

Fotiman

4:39 pm on Apr 7, 2014 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member Top Contributors Of The Month



Well, from that little bit of code you posted, it certainly doesn't look like you've defined an element with the ID of "BANNERADS", which is what this code is looking for:
$("#BANNERADS").append(LINK);

I think you're missing something like this in your markup:
<div id="BANNERADS"></div>

calabar

7:00 pm on Apr 7, 2014 (gmt 0)

10+ Year Member



JQUERY AJAX ROUTINE (BANNERADS ROTATION )
WHEN BANNERADS.PHP IS CALLED,ERROR ON LINE 4, GETTING PROPERTY OF NON OBJECT.
LOOKS LIKE mysqli is not activated in php.ini file.

<HTML>
<HEAD>
<STYLE>
#BANNERADS {
position : absolute;
top : 1px ;
left : 60% ;
width : 40% ;
height : 300px
}
</STYLE>






<script src="//code.jquery.com/jquery-1.10.2.js"></script>

<SCRIPT>

$(document).ready( function(){

function BANNERADS(){
$.getJSON( "http://localhost/AJAXPHP/JQUERY/BANNERADS/BANNERADS.PHP", function(ADS){
var LINK = $("<A>");
LINK.attr( "HREF" , ADS.ADVERTISERURL );
var BANNER = $("<IMG>");
BANNER.attr( "SRC", ADS.IMAGEURL );
BANNER.attr( "WIDTH" , "200" );
BANNER.attr( "HEIGHT" , "200");
LINK.append(BANNER);
$("#BANNERADS").append(LINK);
});
window.setInterval(BANNERAD, 5000);

}
BANNERADS();
});
</SCRIPT>
</HEAD>
<BODY>


#########################################################################
#########################################################################

BANNERADS.PHP

<?php
$mysqli = new mysqli( "localhost", "root", "","ajaxdbf");
$result = mysqli->query( "SELECT * FROM BANNERADS ");
$ROW_CNT = $result->num_rows;
$RANDOMNUMBER = rand( 1, $ROW_CNT );
$SQLADS = " SELECT * FROM BANNERADS ";
$SQLADS.= " WHERE BANNERADID =" . $RANDOMNUMBER;
$FBANNERADS= $mysqli->query( $SQLADS );
while ( $ROW = $FBANNERADS->fetch_array()){
$ADS = array(
'IMAGEURL' => $ROW["IMAGEURL"],
'ADVERTISERURL' =>$ROW["ADVERTISERURL"]
);
}
echo(json_encode($ADS ));
?>

Fotiman

7:11 pm on Apr 7, 2014 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member Top Contributors Of The Month



Ok, so that sounds like a server side issue. If you get that sorted out, report back if you're still having problems on the client side.