iuree 0 Denunciar post Postado Setembro 12, 2009 Oi pessoal. É meu primeiro tópico aqui no fórum, então se algo estiver errado por favor avisem... É o seguinte, o que estou fazendo é uma calculadora de tarifas para uma pousada. O que ela faz é calcular quanto você irá gastar na data de entrada e de saída selecionadas no calendário. Que é isso: http://nautilus-ilhabela.com.br/portugese/rates.php Aqui está a minha on-line: http://www.recantodasaraucarias.com.br/teste/reservas/rates.php Até aí tudo certo. Eu adaptei o layout do jeito que eu queria, e o calendário funciona ok. Porém quando eu seleciono as datas de entrada e saída, os preços não são carregados e a animação gif de carregamento fica alí. Já verifiquei os caminhos de todos os arquivos externos que essa página usa, e estão todos no diretório correto (espero). Sou um tanto novo com php, tô mais acostumado com o flash e o as, então desculpem se é uma dúvida muito estúpida. Desde já agradeço a quem puder ajudar... Compartilhar este post Link para o post Compartilhar em outros sites
Adson aquino 2 Denunciar post Postado Setembro 12, 2009 Oi pessoal. É meu primeiro tópico aqui no fórum, então se algo estiver errado por favor avisem... É o seguinte, o que estou fazendo é uma calculadora de tarifas para uma pousada. O que ela faz é calcular quanto você irá gastar na data de entrada e de saída selecionadas no calendário. Que é isso: http://nautilus-ilhabela.com.br/portugese/rates.php Aqui está a minha on-line: http://www.recantodasaraucarias.com.br/teste/reservas/rates.php Até aí tudo certo. Eu adaptei o layout do jeito que eu queria, e o calendário funciona ok. Porém quando eu seleciono as datas de entrada e saída, os preços não são carregados e a animação gif de carregamento fica alí. Já verifiquei os caminhos de todos os arquivos externos que essa página usa, e estão todos no diretório correto (espero). Sou um tanto novo com php, tô mais acostumado com o flash e o as, então desculpem se é uma dúvida muito estúpida. Desde já agradeço a quem puder ajudar... Posta o código pra que a gente possa estudar o problema. Compartilhar este post Link para o post Compartilhar em outros sites
iuree 0 Denunciar post Postado Setembro 12, 2009 Ok. Esse é o código da página, chamada "rates.php": <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Pousada Recanto das Araucárias</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="Keywords" content="pousada,campos do jordão,pousadas,pousadas campos do jordão,pousada em campos do jordão,SP,orçamento online,tarifas,calendário,fériados de São Paulo" /> <meta name="Description" content="Simples. Como a vida deve ser." /> <meta name="abstract" content="Pousada Recanto das Araucárias, Orçamento Online" /> <meta name="Email" content="pousada@recantodasaraucarias.com.br" /> <meta name="Author" content="Hubsystem Informática" /> <meta name="Publisher" content="Hubsystem Informática" /> <meta name="Category" content="campos do jordão,são paulo,tour,turismo,guide,guia,brasil,hotéis,hotel,pousada" /> <meta name="Distribution" content="GLOBAL" /> <meta name="Rating" content="GENERAL" /> <meta http-equiv="Expires" content="0" /> <meta http-equiv="Vary" content="Content-language" /> <meta http-equiv="Content-language" content="portuguese, pt-BR" /> <meta name="language" content="portugese, pt-BR" /> <meta name="robots" content="INDEX,FOLLOW" /> <meta name="revisit-after" content="31 days" /> <meta name="audience" content="all" /> <style type="text/css" media="all">@import "cal.css";</style> <style type="text/css" media="all">@import "jscal2.css";</style> <style type="text/css" media="all">@import "border-radius.css";</style> <style type="text/css" media="all"> @import "gold.css";.style1 {font-family: Arial, Helvetica, sans-serif} .style2 {color: #FF6600} body { background-color: #EAF3C7; } body,td,th { color: #333333; } </style> <script type="text/javascript" src="jscal2.js"></script> <script type="text/javascript" src="pt.js"></script> <script> var fromDate, untilDate; var preimg = new Image(); var xmlHttp; var SELECTED_RANGE = null; var resCal = null; window.addEventListener?window.addEventListener("load",initpage,false):window.attachEvent("onload",initpage); preimg.src="spinner.gif"; function isDate(y, m, d){ if(typeof y == "string" && m instanceof RegExp && d){ if(!m.test(y)) return 1; y = RegExp["$" + d.y], m = RegExp["$" + d.m], d = RegExp["$" + d.d]; } d = Math.abs(d) || 0, m = Math.abs(m) || 0, y = Math.abs(y) || 0; return arguments.length != 3 ? 1 : d < 1 || d > 31 ? 2 : m < 1 || m > 12 ? 3 : /4|6|9|11/.test(m) && d == 31 ? 4 : m == 2 && (d > ((y = !(y % 4) && (y % 1e2) || !(y % 4e2)) ? 29 : 28)) ? 5 + !!y : 0; }; function getDates(){ if (!(isDate(fromDate, /^([0-9]{4})-([0-9]{2})-([0-9]{2})$/, {d: 3, m: 2, y: 1}) && isDate(untilDate, /^([0-9]{4})-([0-9]{2})-([0-9]{2})$/, {d: 3, m: 2, y: 1}))) { document.getElementById("valueStd").innerHTML="<img src='spinner.gif'>"; document.getElementById("valueLx").innerHTML="<img src='spinner.gif'>"; document.getElementById("valueSlx").innerHTML="<img src='spinner.gif'>"; document.getElementById("info_msg").innerHTML=" "; document.getElementById("fromDate").innerHTML=" "; document.getElementById("untilDate").innerHTML=" "; GetRates(fromDate + "///" + untilDate); } } function GetRates(dateStr){ var selObj = document.getElementById("persons"); var selIndex = selObj.selectedIndex; var persons=selObj.options[selIndex].value; pageTracker._trackEvent("Rates","GetRates"); fromDate=dateStr.split('///')[0]; untilDate=dateStr.split('///')[1]; var url="getRates.php?fD=" + fromDate + "&uD=" + untilDate + "&p=" + persons + "&s=" + Math.random(); // alert(url); xmlHttp.onreadystatechange=GetRatesStateChanged; xmlHttp.open("GET",url,true); xmlHttp.send(null); } function GetRatesStateChanged(){ if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ // alert(xmlHttp.responseText); xmlDoc=xmlHttp.responseXML; document.getElementById("valueStd").innerHTML=xmlDoc.getElementsByTagName("valueStd")[0].childNodes[0].nodeValue; document.getElementById("valueLx").innerHTML=xmlDoc.getElementsByTagName("valueLx")[0].childNodes[0].nodeValue; document.getElementById("valueSlx").innerHTML=xmlDoc.getElementsByTagName("valueSlx")[0].childNodes[0].nodeValue; document.getElementById("fromDate").innerHTML=xmlDoc.getElementsByTagName("fromDate")[0].childNodes[0].nodeValue; document.getElementById("untilDate").innerHTML=xmlDoc.getElementsByTagName("untilDate")[0].childNodes[0].nodeValue; document.getElementById("info_msg").innerHTML=xmlDoc.getElementsByTagName("infomsg")[0].childNodes[0].nodeValue; if (document.getElementById("valueStd").innerHTML != "R$ -,--" ){ inf = "<br>Clique <a style='color: #ff0000' href='#' onclick='sendRates()'>aqui</a> para mandar este orçamento "; inf += "para o seu email<br><br>ou<br><br>Clique no calendário para selecionar uma nova data de entrada."; document.getElementById("divInfo").innerHTML = inf; } // xmlHttp.close; } } function sendRates(){ var email = prompt("Digite seu eMail abaixo","nome@dominio"); var selObj = document.getElementById("persons"); var selIndex = selObj.selectedIndex; var persons=selObj.options[selIndex].value; pageTracker._trackEvent("Rates","sendRates"); var url="sendRates.php?fD=" + document.getElementById("fromDate").innerHTML + "&uD=" + document.getElementById("untilDate").innerHTML; url += "&p=" + persons + "&s=" + Math.random() + "&std=" + document.getElementById("valueStd").innerHTML + "&lx=" + document.getElementById("valueLx").innerHTML; url += "&slx=" + document.getElementById("valueSlx").innerHTML + "&e=" + email; xmlHttp.onreadystatechange=sendRatesChanged; xmlHttp.open("GET",url,true); xmlHttp.send(null); } function sendRatesChanged(){ if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ xmlDoc=xmlHttp.responseXML; document.getElementById("info_msg").innerHTML=xmlDoc.getElementsByTagName("info_msg")[0].childNodes[0].nodeValue; alert(xmlDoc.getElementsByTagName("info_msg")[0].childNodes[0].nodeValue); // xmlHttp.close; } } function initXMLRPC(){ xmlHttp = false; try { xmlHttp=new XMLHttpRequest(); } catch (e){ try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch (e){ try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP.5.0"); } catch (e){ try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP.4.0"); } catch (e) { alert("Your browser does not support AJAX!"); return false; } } } } } function getDateInfo(date, wantsClassName) { var as_number = Calendar.dateToInt(date); if (as_number >= 20090904 && as_number <= 20090907) return { klass : 'highlight2', tooltip : "<div style='color: #000000; text-align: center'>Independencia</div>" }; if (as_number >= 20091009 && as_number <= 20091012) return { klass : 'highlight2', tooltip : "<div style='color: #000000; text-align: center'>Nossa Sra. Aparecida</div>" }; if (as_number >= 20091030 && as_number <= 20091102) return { klass : 'highlight2', tooltip : "<div style='color: #000000; text-align: center'>Finados</div>" }; if (as_number >= 20091119 && as_number <= 20091122) return { klass : 'highlight2', tooltip : "<div style='color: #000000; text-align: center'>Consciencia Negra</div>" }; if (as_number >= 20091226 && as_number <= 20100101) return { klass : 'highlight2', tooltip : "<div style='color: #000000; text-align: center'>Reveillon</div>" }; if (as_number >= 20100212 && as_number <= 20100217) return { klass : 'highlight2', tooltip : "<div style='color: #000000; text-align: center'>Carnaval</div>" }; if (as_number >= 20100401 && as_number <= 20100404) return { klass : 'highlight2', tooltip : "<div style='color: #000000; text-align: center'>Pascoa</div>" }; if (as_number >= 20100416 && as_number <= 20100421) return { klass : 'highlight2', tooltip : "<div style='color: #000000; text-align: center'>Tiradentes</div>" }; } function getSelectionHandler() { var startDate = null; var ignoreEvent = false; return function(cal) { var selectionObject = cal.selection; if (ignoreEvent) return; var selectedDate = selectionObject.get(); if (startDate == null) { startDate = selectedDate; SELECTED_RANGE = null; document.getElementById("valueStd").innerHTML="R$ -,--"; document.getElementById("valueLx").innerHTML="R$ -,--"; document.getElementById("valueSlx").innerHTML="R$ -,--"; document.getElementById("info_msg").innerHTML=" "; document.getElementById("fromDate").innerHTML=Calendar.printDate(Calendar.intToDate(startDate),"%Y-%m-%d"); document.getElementById("untilDate").innerHTML=" "; document.getElementById("divInfo").innerHTML = "<br>Clique para selecionar<br>a data de saída"; cal.args.min = Calendar.intToDate(selectedDate); cal.refresh(); } else { ignoreEvent = true; selectionObject.selectRange(startDate, selectedDate); ignoreEvent = false; SELECTED_RANGE = selectionObject.sel[0]; document.getElementById("valueStd").innerHTML="<img src='spinner.gif'>"; document.getElementById("valueLx").innerHTML="<img src='spinner.gif'>"; document.getElementById("valueSlx").innerHTML="<img src='spinner.gif'>"; document.getElementById("info_msg").innerHTML=" "; document.getElementById("fromDate").innerHTML=Calendar.printDate(Calendar.intToDate(startDate),"%Y-%m-%d"); document.getElementById("untilDate").innerHTML=Calendar.printDate(Calendar.intToDate(selectedDate),"%Y-%m-%d"); document.getElementById("divInfo").innerHTML="<br>Clique no calendário para selecionar<br>uma nova data de entrada."; startDate = null; min_date = new Date(); cal.args.min = min_date; cal.refresh(); GetRates(selectionObject.print("%Y-%m-%d","///").join("\n")); } }; } function initCal(){ resCal=Calendar.setup({ cont : "calendar-container", // animation : false, fdow : 1, selectionType : Calendar.SEL_SINGLE, selection : Calendar.dateToInt(new Date()), onSelect : getSelectionHandler(), bottomBar : false, min : Calendar.dateToInt(new Date()), max : 20100430, dateInfo : getDateInfo, titleFormat : "%b %Y" }); } function initpage(){ initXMLRPC(); initCal(); } </script> </head> <body style="overflow: hidden; padding: 0px; margin: 0px"> <div style="width: 400px; height:480px"> <div align="center" class="NormTxt10C style1" id="divInfo" style="float: left; background: url(bg.png) no-repeat #ccc; -moz-border-radius: 7px; -webkit-border-radius: 7px; border: 1px solid #808080; padding: 10px; color:#000000; width:177px; height: 154px"> <div align="left" class="style2"><br /> Clique no calendário<br /> para selecionar<br /> a data de entrada </div> </div> <div id="calendar-container" style="float: left"> </div> <div style="float: left; background: url(bg.png) no-repeat #ccc; -moz-border-radius: 7px; -webkit-border-radius: 7px; border: 1px solid #808080; padding: 0px; width: 378px; height:220px; padding: 10px" align="center"> <table border='0px'> <colgroup> <col width="50%" /> <col width="50%" /> </colgroup> <tr> <td class="NormTxt10C" colspan="2" style="padding-bottom:10px"> <div> Pessoas/Apto: <select id="persons" onchange="getDates()" class="NormTxt10"> <option value='2'>1</option> <option value='2' selected="selected">2</option> <option value='3'>3</option> <option value='4'>4</option> <option value='5'>5</option> </select> </div> </td> </tr> <tr> <td colspan="2"> <hr style="width: 70%; size: 1px" /> </td> </tr> <tr> <td> <div id="fromDate" class="NormTxt10"> </div> </td> <td> <div id="untilDate" class="NormTxt10R"> </div> </td> </tr> <tr height="20px"> <td class="NormTxt10"> Apto. Std: </td> <td> <div id="valueStd" class="NormTxt10R"> R$ -,-- </div> </td> </tr> <tr height="20px"> <td class="NormTxt10"> Apto. Luxo: </td> <td> <div id="valueLx" class="NormTxt10R"> R$ -,-- </div> </td> </tr> <tr height="20px"> <td class="NormTxt10"> Apto. S.Luxo: </td> <td> <div id="valueSlx" class="NormTxt10R"> R$ -,-- </div> </td> </tr> <tr> <td colspan="2"> <div id="info_msg" class="NormTxt10C"> </div> </td> </tr> </table> </div> </div> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "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"> try { var pageTracker = _gat._getTracker("UA-8779153-1"); pageTracker._trackPageview(); } catch(err) {} </script> </body> </html> Também há o arquivo "getRates.php", que é isso: <? xml version="1.0" encoding="ISO-8859-1" ?> <rates> <valueStd>R$ -,--</valueStd> <valueLx>R$ -,--</valueLx> <valueSlx>R$ -,--</valueSlx> <fromDate>1969-12-30</fromDate> <untilDate></untilDate> <noDays>0</noDays> <infomsg>Favor ligar para a nossa<br>Central de Reservas<br>no telefone (12) 3662-7073.</infomsg> </rates> ...o arquivo "sendRates.php": <response><info_msg>Erro no email</info_msg></response> E o outro arquivo chama-se "jscal2.js" que é responsável pelo calendário, creio eu. Ele é bem extenso, se acharem que é preciso eu o coloco. Além desse tem outros arquivos de css. Acho que o problema pode ser no php, por ter sido apenas copiado do código fonte e adaptado. Mas como não entendo de php, aí não sei... Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Setembro 14, 2009 Sim. Não tente copiar fontes php dessa forma. você não vai conseguir. O arquivo: sendRates.php deve fazer algum processamento interno com o banco de dados. Por isso que o teu não funciona, já que é impossível copíar código fonte php, sem ter acesso ao ftp. Desenvola a tua aplicação, ficará bem mais fácil do que tentar copiar uma já existente. Além de você saber oque está acontecendo. Sabe trabalhar com banco de dados ? Compartilhar este post Link para o post Compartilhar em outros sites
iuree 0 Denunciar post Postado Setembro 14, 2009 Certo... Obrigado por me tirar essa dúvida. Estou me empenhando pra desenvolver corretamente a aplicação, e estou na primeira casa, ou seja, lendo e estudando o php (além de ter apanhado com o Apache hoje...). Não, não tenho experiência nenhuma com banco de dados (apenas uma idéia de como funciona...) Então, você disse que o arquivo "sendRates.php" deve interagir com o banco de dados... Você tem alguma idéia de que tipo de informação ele poderia conter? Os valores das reservas em "R$" que aparecem na calculadora, por exemplo? Compartilhar este post Link para o post Compartilhar em outros sites