Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá à todos.
Alguém pode me ajudar com esse erro?
O IE está dando ERRO document.forms.0.opc_atualizar é nulo ou não é um objeto.
O mas estranho é que esse script funciona se a estrutura do código for somente em tabelas. Digo isso, pois acabei de alterar o meu antigo site p/ DIV´s e não está funcionando.
Uma observação importante:
No final do post tem o arquivo completo.
O código ORIGINAL é do imasters "http://imasters.com.br/artigo/2095/php/carrinho_de_compras_simples_usando_arrays_e_sessions_-_parte_09/"
Por favor alguém me ajuda.
Vlw à todos.
JS
<script language="JavaScript">
<!--
function enviar(opcao) {
//OPÇÃO EXCLUIR SELECIONADA
if(opcao == 'E') {
document.forms[0].opc_excluir.value = 1;
document.forms[0].submit();
}//FECHA IF
//OPÇÃO ATUALIZAR SELECIONADA
if(opcao == 'A') {
document.forms[0].opc_atualizar.value = 1;
document.forms[0].submit();
}//FECHA IF
//OPÇÃO FINALIZAR SELECIONADA
if(opcao == 'F') {
document.forms[0].opc_finalizar.value = 1;
document.forms[0].action = "finalizar.php";
document.forms[0].submit();
}//FECHA IF
}//FECHA FUNCTIONHTML FORM
<form name="frmCarrinho" method="POST">
<input type="hidden" name="opc_excluir">
<input type="hidden" name="opc_atualizar">
<input type="hidden" name="opc_finalizar">
CÓDIGO COMPLETO
<?
//INICIALIZA A SESSÃO
session_start();
//VERIFICA SE TEM PRODUTO NO CARRINHO PARA PUXAR
if(count($_SESSION[cesta]) > 0) {
//PEGA A CHAVE DO ARRAY
$chave = array_keys($_SESSION[cesta]);
//PEGA OS DADOS DA SESSÃO
for($i=0; $i<sizeof($chave); $i++) {
//ÍNDICE
$indice = $chave[$i];
//ATRIBUI
$cesta[$indice][CODIGO] = $_SESSION[cesta][$indice][CODIGO];
$cesta[$indice][ARTISTA] = $_SESSION[cesta][$indice][ARTISTA];
$cesta[$indice][PRECO] = $_SESSION[cesta][$indice][PRECO];
$cesta[$indice][QTDE] = $_SESSION[cesta][$indice][QTDE];
// $cesta[$indice][PESO] = $_SESSION[cesta][$indice][PESO];
}//FECHA FOR//VERIFICA SE A OPÇÃO ATUALIZAR FOI SELECIONADA
if($_POST[opc_atualizar]) {
//RECEBE OS PRODUTOS CHECADOS PARA ATUALIZAÇÃO
$v_atualiza = $_POST[a_prod];
//PEGA A CHAVE DO ARRAY
$chave = array_keys($v_atualiza);
//EXIBE
for($i=0; $i<sizeof($chave); $i++) {
//PEGA O INDICE DO PRODUTO
$indice = $chave[$i];
//ALTERA A QUANTIDADE DO PRODUTO SELECIONADO
$_SESSION[cesta][$indice][QTDE] = $v_atualiza[$indice][QTDE];
}//FECHA FOR//VERIFICA SE A OPÇÃO EXCLUIR FOI SELECIONADA
elseif($_POST[opc_excluir]) {
//RECEBE OS PRODUTOS CHECADOS PARA EXCLUSÃO
$excluir = $_POST[check];
//EXIBE
for($i=0; $i<sizeof($excluir); $i++) {
//PEGA O INDICE DO PRODUTO
$indice = $excluir[$i];
//DESTRÓI A VARIÁVEL ESPECIFICADA
unset($_SESSION[cesta][$indice]);
}//FECHA FOR//RECEBE O PEDIDO DO USUÁRIO
elseif($_POST[opc_efetivar]) {
//RECEBE AS VARIÁVEIS
$v_prod = $_POST[txtprod];
//PEGA A CHAVE DO ARRAY
$chave = array_keys($v_prod);
//EXIBE
for($i=0; $i<sizeof($chave); $i++) {
$indice = $chave[$i];
//VERIFICA
if(!empty($v_prod[$indice][QTDE]) ) {
//GRAVA NO ARRAY CESTA
$cesta[$indice][CODIGO] = $v_prod[$indice][CODIGO];
$cesta[$indice][ARTISTA] = $v_prod[$indice][ARTISTA];
$cesta[$indice][PRECO] = $v_prod[$indice][PRECO];
$cesta[$indice][QTDE] = $v_prod[$indice][QTDE];
// $cesta[$indice][PESO] = $v_prod[$indice][PESO];
}//FECHA IF
}//FECHA FOR
//GRAVA NA SESSÃO
$_SESSION[cesta] = $cesta;?>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="content-language" content="pt-br" />
<meta name="description" content="A" />
<meta name="keywords" content="a" />
<meta name="robots" content="index,follow" />
<meta name="author" content="N" />
<title>A</title>
<link rel="STYLESHEET" type="text/css" href="../common/nc_layout.css" />
<link rel="STYLESHEET" type="text/css" href="../common/nc_propriedades.css" />
<script type="text/javascript" src="../common/nc_scripts.js"></script>
<script type="text/javascript" src="../common/scrollovers.js"></script>
<script type="text/javascript" src="../common/recomenda.js"></script>
<style type="text/css">#Layer1 {
position:absolute;
width:86px;
height:115px;
z-index:1;
left: 742px;
top: 480px;
}
#Layer2 {
position:absolute;
width:365px;
height:81px;
z-index:2;
visibility: visible;
overflow: visible;
}
#Layer3 {
position:absolute;
width:133px;
height:150px;
z-index:2;
left: 128px;
top: 198px;
}
#Layer5 {
position:absolute;
width:258px;
height:216px;
z-index:3;
left: 358px;
top: 309px;
border-color: #b57db4;
border-style: solid;
border-width: 2px;
background-color: #FFFFFF;
visibility: hidden;
}
#Layer6 {
position:absolute;
width:477px;
height:216px;
z-index:3;
left: 269px;
top: 253px;
border-color: #b57db4;
border-style: solid;
border-width: 2px;
background-color: #FFFFFF;
visibility: hidden;
}
#Layer7 {
position:absolute;
width:258px;
height:216px;
z-index:3;
left: 358px;
top: 309px;
border-color: #b57db4;
border-style: solid;
border-width: 2px;
background-color: #FFFFFF;
visibility: hidden;
}
#Layer8 {
position:absolute;
width:258px;
height:216px;
z-index:3;
left: 266px;
top: 309px;
border-color: #b57db4;
border-style: solid;
border-width: 2px;
background-color: #FFFFFF;
visibility: hidden;
}
#Layer9 {
position:absolute;
width:121px;
height:60px;
z-index:3;
left: 678px;
top: 152px;
border-color: #ffffff;
border-style: solid;
border-width: 2px;
visibility: visible;
}
a { color: #993366; text-decoration: none}
a2 { text-decoration: underline}
a:hover{ color: #FF459F; text-decoration: none}
.style1 {
color: #FFFFFF;
font-family: Arial, Verdana, Helvetica, sans-serif;
font-size: 9pt;
}
.style2 {
color: #000000;
font-weight: bold;
}
.style3 {
color: #FFFFFF;
font-family: Arial, Verdana, Helvetica, sans-serif;
font-size: 7pt;
}
.style5 {color: #FFFFFF; font-weight: bold; }
.style6 {color: #DEBFD9}
.style21 {font-size: 9px; color: #FFFFFF}
.style22 {font-size: 12px; color: #993366; font-family: Verdana, Arial, Helvetica, sans-serif;}
.style28 {font-size: 14px}
.style33 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 9px;
font-weight: bold;
color: #999999;
}
.style34 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 9px;
color: #999999;
}
.style35 {
font-size: 10px;
color: #993366;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
.style36 {color: #660000}
.style37 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; font-weight: bold; color: #660000; }
-->
</style>
<script language="JavaScript"> function enviar(opcao) {
//OPÇÃO EXCLUIR SELECIONADA
if(opcao == 'E') {
document.forms[0].opc_excluir.value = 1;
document.forms[0].submit();
}//FECHA IF
//OPÇÃO ATUALIZAR SELECIONADA
if(opcao == 'A') {
document.forms[0].opc_atualizar.value = 1;
document.forms[0].submit();
}//FECHA IF
//OPÇÃO FINALIZAR SELECIONADA
if(opcao == 'F') {
document.forms[0].opc_finalizar.value = 1;
document.forms[0].action = "finalizar.php";
document.forms[0].submit();
}//FECHA IF
}//FECHA FUNCTION</script>
<script> if(document.getElementById){
this.obj = document.getElementById(id).style;
this.obj.visibility = visibility;
return this.obj;}
else if(document.all){
this.obj = document.all[id].style;
this.obj.visibility = visibility;
return this.obj;}
else if(document.layers){
this.obj = document.layers[id];
this.obj.visibility = visibility;
return this.obj;}
}
function visVisible(param){
new layerSetup(param,'visible');
}
function visHidden(param){
new layerSetup(param,'hidden');
}
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}</script>
</head>
<body>
<div id="tudo">
<div id="topo">
<div id="logo">
<a href="../home.html">
<img src="../figuras/logor.png" alt="" />
</a>
</div>
<div class="linha">
_________________________________________________________________________________________________________________
</div>
</div> <!-- fim da DIV TOPO-->
<div class="clr"></div>
<div id="menu">
<iframe align="left" name="menu" src="../common/menu.html" frameBorder="0" width="178" height="100%" scrolling="no" allowtransparency="true"></iframe>
<br />
<br />
<br />
<br />
</div> <!-- fim da DIV MENU-->
<div id="conteudo">
<div id="ag_moldura">
<h1 id="ag">
<span>A</span>
</h1>
<br />
<table width="602" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bgcolor="#DEBFD9">
<tr>
<td height="59" colspan="4">
<br />
<span class="style6">__</span>
<img src="../figuras/ttl_vitrine.png" alt="Vitrine" oncontextmenu="return false" />
<br />
<span class="style1">
<br />
<span class="style6">___</span>Carrinho de Compras
</span>
<br/>
<?
//EXIBE O CARRINHO SE TIVER PRODUTOS
if(count($_SESSION[cesta]) > 0) {
?>
<table width="566" align="left">
<tr>
<td>
<table width="526" height="264" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="b57db4" bgcolor="ffffff">
<tr>
<td>
<form name="frmCarrinho" method="POST">
<input type="hidden" name="opc_excluir">
<input type="hidden" name="opc_atualizar">
<input type="hidden" name="opc_finalizar">
<table width="95%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF">
<tr>
<td>
</td>
</tr>
<tr bgcolor="#b57db4">
<td width="4%"> </td>
<td width="7%" align="center"><span class="style2">Qtde</span></td>
<td width="42%" align="center"><span class="style2">Produto</span></td>
<td width="23%" align="center"><span class="style2">Valor</span></td>
<td width="24%" align="center"><span class="style2">Subtotal</span></td>
</tr>
<?
//PEGA A CHAVE
$chave_cesta = @array_keys($_SESSION[cesta]);
//EXIBE OS PRODUTOS DA CESTA
for($i=0; $i<sizeof($chave_cesta); $i++) {
$indice = $chave_cesta[$i];
//SUBTOTAIS DE CADA PRODUTO
$subtotal = $_SESSION[cesta][$indice][QTDE] * ereg_replace(",",".",$_SESSION[cesta][$indice][PRECO]);
/* //CALCULO FRETE GERAL
$fretetotal = $_SESSION[cesta][$indice][QTDE] * $_SESSION[cesta][$indice][PESO];
*/
//TOTAL GERAL
$total += $subtotal;
?>
<tr>
<td height="25" align="center">
<input name="check[]" type="checkbox" value="<? echo $indice; ?>">
</td>
<td height="25" align="center">
<font face='Arial' size='2'>
<input type="text" name="a_prod[<? echo $indice; ?>][QTDE]" value="<? echo $_SESSION[cesta][$indice][QTDE]; ?>" size="3">
</font>
</td>
<td height="25">
<font face='Arial' size='2'><? echo $_SESSION[cesta][$indice][ARTISTA]; ?> - <? echo $_SESSION[cesta][$indice][CODIGO]; ?></font>
</td>
<td height="25" align="right">
<font face='Arial' size='2'>R$ <? echo $_SESSION[cesta][$indice][PRECO]; ?> </font>
</td>
<td width="24%" height="25" align="right">
<font face='Arial' size='2'> R$ <? echo number_format($subtotal,2,',','.'); ?> </font>
</td>
</tr>
<?
}//FECHA FOR
?>
<tr>
<td height="25" colspan="3">
<input type="image" name="btnExcluir" src="excluir.gif" onClick="enviar('E');">
<input type="image" name="btnAtualiza" src="atualizar.gif" onClick="enviar('A');">
</td>
<td height="25" bgcolor="#b57db4">
<span class="style5" align="center"> Total s/ frete*: </span>
</td>
<td height="25" bgcolor="#DEBFD9" class="style2" align="right"> R$ <b><? echo number_format($total,2,',','.'); ?> </b>
</td>
</tr>
<tr>
<td height="25" colspan="3"> </td>
<td height="40" colspan="2">
<div align="center">
<input type="image" name="btnFinaliza" src="finaliza.gif" onClick="enviar('F');">
</div>
</td>
</tr>
</table>
</form>
<?
}//FECHA IF(count)
else {
?>
<br /><br /><br />
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align='center'>
<font face='Arial' size='2' color="#006666"><b>Desculpe, mas no momento você não possui nenhumm produto.</b></font>
</td>
</tr>
</table>
<br />
<br />
<?
}//FECHA ELSE (count)
?>
<table width="81%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align='center'>
<div>
<span class="style33">
*O valor do frete deve ser calculado na Tela de Check-out
<!--a href="[http://www.correios.com.br/encomendas/precos/default.cfm"](http://www.correios.com.br/encomendas/precos/default.cfm) target="_blank">clicando aqui >>
<img src="../figuras/correios.gif" alt="correios" border="0"> << </a-->
</span>
<span class="style35"><br />
<strong>O resultado desta pesquisa é meramente informativo, devendo ser confirmado no ato da postagem.</strong>
</span><br />
</div>
</td>
</tr>
</table>
</td> <!-- inclui-->
</tr>
</table>
<br />
<br />
<br />
</td>
</tr>
</table>
</td>
</tr>
</table>
<br />
<br />
<br />
</div> <!-- fim da DIV MOLDURA-->
<br />
</div> <!-- fim da DIV CONTEUDO -->
<div class="clr"></div>
<div id="rodape">
<div class="linha">
_________________________________________________________________________________________________________________
</div>
<p class="rodape">
© 2008-2009 — N ® — Todos os direitos reservados | <a href="#"></a>
</p>
</div> <!-- fim da DIV RODAPE -->
<div id="noticias">
<h3>Notícias:</h3>
<ul>
<li><a href="#"></a></li>
</ul>
</div>
</div> <!-- fim da DIV TUDO -->
<!-- INICIO SCRIPT GOOGLE ANALYTICS -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "[https://ssl."](https://ssl.) : "[http://www."](http://www.));
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">var pageTracker = _gat._getTracker("UA-5553358-1");
pageTracker._trackPageview();
} catch(err) {}</script></body>
</html>Carregando comentários...