Forum Moderators: open

Message Too Old, No Replies

Inline Frames

         

mcuk

1:56 pm on Jan 30, 2010 (gmt 0)

10+ Year Member



Hello (I've posted this message here although it may belong in the Javascript forum)

I've been attempting to build a page on my soon to be uploaded site with a shopping cart. (I've been looking for a shopping cart that stops short of the payment part and just allows the buyer to send their order directly to my e-mail address upon pressing 'order', so I can get back in touch with them to finalise things.)

So, I came across this site:

[htmlgoodies.com...]

Which is basically what I want (with a few design alterations). However, I would like it (as it appears in the following link)

[htmlgoodies.com...]

To appear within one page (shop.htm) in an inline frame.

I tried adding the following in the shop.htm page coding.

<iframe src="shopcartindex.html"
width="65%" height="600"
align="left">
</iframe>

But while it does appear - it doesn't work as nothing appears in the boxes when I press the buttons.

My Question is - is there something I'm doing wrong, or any other method I could try to encorporate it?

This is virtually my first venture into anything HTML so I thought I'd come here rather than guess my way through it, so thanks in advance...

Readie

9:41 pm on Jan 31, 2010 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



I can't really offer much assistance without seeing the actual code you have - there are a few ideas that leap to my mind as to why it is not working (Document Object Model element retrieval being my primary thought) - post some of the relevant code and we should be able to help you.

mcuk

11:18 am on Feb 1, 2010 (gmt 0)

10+ Year Member



Ok, here's some of the code. This is the shop.htm page(minus the images and page links at the top) complete with my attempt at putting in an inline frame.

<html>

<head>
<title>Shop</title>
</head>

<body>

<p>
</p>

<table width="1000" border="0" cellspacing="4" cellpadding="4">
<tr>

<td align="left">

<iframe src="shopcartindex.html"
width="65%" height="600"
align="left">

</iframe>

</td>

</tr>

</body>

</html>

While this is the code for the main frames page - shopcartindex.html

<html>
<head>
<title>Shopping Cart Template</title>

<script language=javascript>
<!-- hide
order_total =0;
item_num = 1
present_item = 1;
items_ordered = 0;
total_item_price =0;
maxarray = 50
var st_astr = '<html><body bgcolor=#ffffff>'
var en_astr = '</body></html>'

function getCookie (name) {
var dcookie = document.cookie;
var cname = name + "=";
var clen = dcookie.length;
var cbegin = 0;
while (cbegin < clen) {
var vbegin = cbegin + cname.length;
if (dcookie.substring(cbegin, vbegin) == cname) {
var vend = dcookie.indexOf (";", vbegin);
if (vend == -1) vend = clen;
return unescape(dcookie.substring(vbegin, vend));
}
cbegin = dcookie.indexOf(" ", cbegin) + 1;
if (cbegin == 0) break;
}
return null;
}

function setCookie (name, value, expires) {
if (!expires) expires = new Date();
document.cookie = name + "=" + escape (value) +
"; expires=" + expires.toGMTString() + "; path=/";
}

function delCookie (name) {
var expireNow = new Date();
document.cookie = name + "=" +
"; expires=Thu, 01-Jan-70 00:00:01 GMT" + "; path=/";
}

var shiparray = new parent.createArray(10);

function getCookieArray(name){
var i = 0;
while (getCookie(name + i) != null) {
shiparray[i + 1] = getCookie(name + i);
i++;
shiparray.length = i;
}
}

var expdate = new Date();

expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 365));

function setCookieArray(name){
temp_length = setCookieArray.arguments.length - 1;
for (var i = 0; i < temp_length; i++) {
data = setCookieArray.arguments[i + 1]
setCookie (name + i, data, expdate);
}
}

function go_with_cookie()
{
setCookieArray('gifttails',
parent.ship_details.f_namea,
parent.ship_details.l_namea,
parent.ship_details.email,
parent.ship_details.ad_onea,
parent.ship_details.ad_twoa,
parent.ship_details.citya,
parent.ship_details.statea,
parent.ship_details.countrya,
parent.ship_details.zipa);
}

function get_that_cookie()
{
var i;
getCookieArray('gifttails');
//alert('shiparray.length = '+ shiparray.length);
for (i=0;i<shiparray.length+1;i++)
{if (shiparray[i])
{ //alert('ship_array[' + i + '] ='+ shiparray[i]);
ship_details[i] = shiparray[i];
//alert('ship_details[' + i + '] ='+ ship_details[i]);
}
else
{// to initiate array values
ship_details[i] = ''
}
}

parent.ship_details.f_namea = ship_details[1];
parent.ship_details.l_namea = ship_details[2];
parent.ship_details.email = ship_details[3];
parent.ship_details.ad_onea = ship_details[4];
parent.ship_details.ad_twoa = ship_details[5];
parent.ship_details.citya = ship_details[6];
parent.ship_details.statea = ship_details[7];
parent.ship_details.countrya = ship_details[8];
parent.ship_details.zipa = ship_details[9];

//alert('shiparray length= ' + shiparray.length + '\nshiparray[1] = ' + shiparray[1] + '\nshiparray[2] = ' + shiparray[2] + '\nshiparray[3] = ' + shiparray[3] + '\nshiparray[4] = ' + shiparray[4] + '\nshiparray[5] = ' + shiparray[5] + '\nshiparray[6] = ' + shiparray[6] + '\nshiparray[7] = ' + shiparray[7] + '\nshiparray[8] = ' + shiparray[8]);
}

// shipping details object creation

ship_details = new shipp_details();

function shipp_details()
{

this.f_namea = ''
this.l_namea= ''
this.ad_onea = ''
this.ad_twoa = ''
this.citya = ''
this.statea =''
this.zipa = ''
this.countrya = ''
this.phonea = ''
this.faxa = ''
this.mailon = false
this.sameflag = false
this.shipname=''
this.ad_oneb = ''
this.ad_twob=''
this.shipb = ''
this.stateb=''
this.zipb=''
this.countryb=''
this.phoneb=''
this.faxb=''
this.email=''
this.comments = ''
}

function refresh_ship_details(shipform)
{
parent.main.document.order.comments.value = shipform.comments
parent.main.document.order.name_first.value= shipform.f_namea
parent.main.document.order.name_last.value= shipform.l_namea
parent.main.document.order.email.value=shipform.email
parent.main.document.order.address1.value=shipform.ad_onea
parent.main.document.order.address2.value=shipform.ad_twoa
parent.main.document.order.city.value=shipform.citya
parent.main.document.order.state.value=shipform.statea
parent.main.document.order.zip.value=shipform.zipa
parent.main.document.order.country.value=shipform.countrya
parent.main.document.order.phone.value=shipform.phonea
parent.main.document.order.fax.value=shipform.faxa
parent.main.document.order.mail_list.value=shipform.mailon
parent.main.document.order.same_flag.value=shipform.sameflag
parent.main.document.order.ship_name.value=shipform.shipname
parent.main.document.order.ship_address1.value=shipform.ad_oneb
parent.main.document.order.ship_address2.value=shipform.ad_twob
parent.main.document.order.ship_city.value=shipform.shipb
parent.main.document.order.ship_state.value=shipform.stateb
parent.main.document.order.ship_zip.value=shipform.zipb
parent.main.document.order.ship_country.value=shipform.countryb
parent.main.document.order.ship_phone.value=shipform.phoneb

}

function add_ship_details(shipform)
{

shipform.comments = parent.main.document.order.comments.value
shipform.f_namea = parent.main.document.order.name_first.value
shipform.l_namea= parent.main.document.order.name_last.value
shipform.email = parent.main.document.order.email.value
shipform.ad_onea = parent.main.document.order.address1.value
shipform.ad_twoa = parent.main.document.order.address2.value
shipform.citya = parent.main.document.order.city.value
shipform.statea =parent.main.document.order.state.value
shipform.zipa = parent.main.document.order.zip.value
shipform.countrya =parent.main.document.order.country.value
shipform.phonea = parent.main.document.order.phone.value
shipform.faxa = parent.main.document.order.fax.value
shipform.mailon = parent.main.document.order.mail_list.value
shipform.sameflag = parent.main.document.order.same_flag.value
shipform.shipname=parent.main.document.order.ship_name.value
shipform.ad_oneb = parent.main.document.order.ship_address1.value
shipform.ad_twob=parent.main.document.order.ship_address2.value
shipform.shipb = parent.main.document.order.ship_city.value
shipform.stateb=parent.main.document.order.ship_state.value
shipform.zipb=parent.main.document.order.ship_zip.value
shipform.countryb=parent.main.document.order.ship_country.value
shipform.phoneb=parent.main.document.order.ship_phone.value
}

// end of shipping details object handling

function item_tot_price(i)
{
total_item_price = eval((itemlist[i].price * itemlist[i].quan));
return total_item_price;
}

function all_order_totals()

{order_total = 0;
if (item_num > 0)
{
for (i =1;i < item_num;i++)
{order_total = order_total + item_tot_price(i)}

} return order_total;
}

function remove_nil_items(inputlist)
{var i = 0;
var j = 1;
for (i=1;i<item_num;i++)
{if (itemlist[i].quan != 0)
{temp_array[j]=itemlist[i]
items_ordered =j
j=j+1
}
}
itemlist = temp_array
item_num = items_ordered + 1
}

function update_this_page()
{
var i = 0;
var k = 0;
{for (i = 0;i < parent.main.document.form1.elements.length;i++)
{for (k=1;k<=items_ordered;k++)
{
if ((itemlist[k].code == parent.main.document.form1.elements[i].name) && (k<=items_ordered) && (i<=parent.main.document.form1.elements.length))
parent.main.document.form1.elements[i].value = itemlist[k].quan
}
}
}
}

function item_quan(code)
{
var loc = check_if_in(code)
if (loc > 0)
var quantities = itemlist[loc].quan
else
var quantities = 0;
return quantities
}

function display_pic(graphic,price)
{
parent.frames[0].document.close()
// parent.frames[1].document.open()
parent.frames[0].document.write(st_astr);
parent.frames[0].document.write('<img src=images/' + graphic + '><br>' + price);
parent.frames[0].document.write('<p><a href="javascript:parent.updatenav_nav()">Navigation Table</a>');
parent.frames[0].document.write(en_astr);
parent.frames[0].document.close()
}

function createArray(n)
//nsize of array
//initwhat you want all values initialized to
{ this.length = n
var i = 0
for (i = 1 ; i < n ; i++)
this[i] = null;
return this
}

function product(code,price,desc,quan,url)
{ this.price = 0
this.code = code
this.price = price
this.desc = desc
this.quan = quan
this.url = url
return this;
}

var itemlist = new createArray(50);
var temp_array = new createArray(50);

function initialize_arrays(arraysa)
{
for (i = 1;i < maxarray;i++)
{
arraysa[i] = new product('',0,'',0,'')
}
}

function updatemain_order()
{
parent.frames[1].document.close()
// parent.frames[1].document.open()
parent.frames[1].location = "order.html";
parent.frames[1].document.close()
}

function updatenav_nav()
{
parent.frames[0].document.close()
// parent.frames[0].document.open()
parent.frames[0].location = "navigate.htm";
parent.frames[0].document.close()
}

function check_if_in(code_check) // this works
{
var i = 1
loc = 0;
// line 47
while ((i < item_num) && (itemlist[i].code != code_check))
i = i + 1;
if (itemlist[i].code == code_check)
loc = i
else
loc = -1;
//alert('loc is ' + loc);
return loc;
}

function additem(codes,prices,descrip,url)
{
// adds another item to a variable length array
// remember to do it via new product()
// line 61
loc = check_if_in(codes)
// present_item = item_num
//last_item = item_num;
//alert('item_num = ' + item_num)

if (loc != -1){
// update existing item
olditem = itemlist[loc].quan
//alert(' loc is before oldvalue ' + loc);
//alert('olditem is ' + olditem);
itemlist[loc] = new product(codes,prices,descrip,olditem + 1,url)}
else // new item
{olditem = itemlist[item_num].quan
itemlist[item_num] = new product(codes,prices,descrip,olditem + 1,url);
items_ordered = item_num
item_num = item_num + 1
}
remove_nil_items(itemlist)


}
// line 78

function subitem(codes,prices,descrip,url)
{
loc = check_if_in(codes)
if ((loc != -1) && (itemlist[loc].quan > 0)) {
// update existing item
olditem = itemlist[loc].quan
//alert(' loc is before oldvalue ' + loc);
//alert('olditem is ' + olditem);
itemlist[loc] = new product(codes,prices,descrip,olditem - 1,url)}
//updatepage(codes)

}

initialize_arrays(itemlist)
initialize_arrays(temp_array)

function check_window()
{

if (self == mainbody)
{document.write('<head><META HTTP-EQUIV="Refresh" CONTENT="15; URL=index.htm"></head><body><center><h1>Warning!</h1><br><font color=#ff000><b>This is inside a multiple frame window.<br>The scripts may not work correctly!,</font><BR>We are jumping you directly to our <a href="index.htm" target=_top>Main page</a> in 15 seconds.</center>');

self.location = "index.htm";
parent.document.close();

}

}

<!-- end hide -->
</script>

<!-- onLoad=parent.get_that_cookie();check_window() -->
</head>
<frameset cols=25%,* resize=yes onLoad=parent.get_that_cookie()>
<Frame src=navigate.html name=navigate>
<frame src=welcome.html name=main>
<noframes>

This page requires frames.

</noframes>
</frameset>
</html>

There is also a navigate page (which appears in the left hand frame) and a welcome page (which appears in the right), as shown in this [htmlgoodies.com] example.

If the problem isn't recognisable from what I've posted above, then I'll post the code for these pages later.