Preciso criar um popup de mostre horários disponíveis para consulta medica conforme data e horários disponível do médico.
Então fiz um arranjo que mostra o popup a partir de botão. Nele tem faixa de horários. Coloquei os horários em um array e fiz um laço para montar a grade.
Durante a execução do laço (for next ) estou tentando através de uma função Ajax verificar se a data esta disponível... Caso afirmativo permite a seleção da data escolhida (através de um link)... Caso contrario mostraria a hora igual mais não permitiria a seleção.
Acontece que a função Ajax não - me parece que não , verifica na mesma velocidade do laço e aí, mesmo que não tenha horário disponível... Ele mostra que sim.
Então, fiz mais um laço para alimentar um outro array com a função ajax..
Estou executando ele antes de contar a grade com as faixas de horários...
Para daí comparar: array1[n] == array2[n]... No segundo laço...
Ta acontecendo a mesma coisa...
Um idéia que tive e separar em funções e ir chamando na sequencia depois que a 1ª função terminar... Só que não manjo muito do javaScript e tb Ajax para fazer isso.
Pergunta
jgd
Olá Pessoal,
Preciso criar um popup de mostre horários disponíveis para consulta medica conforme data e horários disponível do médico.
Então fiz um arranjo que mostra o popup a partir de botão. Nele tem faixa de horários. Coloquei os horários em um array e fiz um laço para montar a grade.
Durante a execução do laço (for next ) estou tentando através de uma função Ajax verificar se a data esta disponível... Caso afirmativo permite a seleção da data escolhida (através de um link)... Caso contrario mostraria a hora igual mais não permitiria a seleção.
Acontece que a função Ajax não - me parece que não , verifica na mesma velocidade do laço e aí, mesmo que não tenha horário disponível... Ele mostra que sim.
Então, fiz mais um laço para alimentar um outro array com a função ajax..
Estou executando ele antes de contar a grade com as faixas de horários...
Para daí comparar: array1[n] == array2[n]... No segundo laço...
Ta acontecendo a mesma coisa...
Um idéia que tive e separar em funções e ir chamando na sequencia depois que a 1ª função terminar... Só que não manjo muito do javaScript e tb Ajax para fazer isso.
Segue função que tá gerando a grade de horarios
<!-- function pophora(obj,div,tam,ddd){ var testeHora=""; var DataPesq = document.form.data_ini.value; var obrigIdMed = document.form.obrigIdMed.value; if (obrigIdMed==""){ alert("Selecione o médico") document.form.obrigHora_ini.value=""; force_close('"+div+"') }else{ horaN = new Array ("07:00", "07:15", "07:30", "07:45", "08:00", "08:15", "08:30", "08:45", "09:00", "09:15", "09:30", "09:45","10:00", "10:15", "10:30", "10:45","11:00", "11:15", "11:30", "11:45","12:00", "12:15", "12:30", "12:45","13:00", "13:15", "13:30", "13:45","14:00", "14:15", "14:30", "14:45","15:00", "15:15", "15:30", "15:45","16:00", "16:15", "16:30", "16:45","17:00", "17:15", "17:30", "17:45", "18:00", "18:15", "18:30", "18:45","19:00", "19:15", "19:30", "19:45","20:00", "20:15", "20:30", "20:45") horaN2 = new Array n2=0; for (n=1;n<= 56;n++){ function ajaxOcu(DataPesq,horaN[n2],obrigIdMed){ n2++ } txt = "<table bgcolor='#efefff' style='border:solid #df1717; border-width:2' cellspacing='1' cellpadding='1' border='0' width='"+tam+"'>" txt += "<tr bgcolor='#FFFFFF'><td colspan='8' align='center'><table border='0' cellpadding='0' width='100%' bgcolor='#FFFFFF'><tr><td width='80%'>Agenda do Médico(a) :"+ DataPesq +" </td>" txt += "<td width=20% align=right><a href=java script:force_close('"+div+"') class='Cabecalho_Calendario' title='Fechar Horários'><b>X</b></a></td></tr></table></td></tr>" week = d = 1 start = true; n2=0; for (n=1;n<= 56;n++){ if (week == 1) txt += "<tr bgcolor='#efefff' align=center>" if (start) { //alert(DataPesq+" - "+horaN[n2]+" - "+obrigIdMed); // aqui tento fazer a comparação if (horaN2[n2] == horaN[n2]){ txt += "<td align=center bgcolor='#cccccc'>" txt += ""+ horaN[n2] + "" txt += "</td>" }else{ txt += "<td align=center>" txt += "<a href=java script:block('"+ horaN[n2] +"','"+ obj +"','" + div +"') class='data'>"+ horaN[n2] + "</a>" txt += "</td>" } d ++ }else { txt += "<td class='data' align=center> </td>" } week ++ n2++ if (week == 9) { week = 1; txt += "</tr>"} } txt += "</table>" div2 = eval (div) div2.innerHTML = txt } }Função ajax para pergar o horarios function ajaxOcu(dataini,horaini,id){ var xmlHttp; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("Your browser does not support AJAX!"); return false; } } } xmlHttp.onreadystatechange=function() { if(xmlHttp.readyState==4){ /// Aqui tento alimentar o segundo array horaN2[n2] =xmlHttp.responseText; } } xmlHttp.open("GET","atuaHoraMedAgeOcu.asp?dataini="+dataini+"&horaini="+horaini+"&id="+id,true); xmlHttp.send(null); } //-->Alguém poderia de dar um luz a respeito??? Opas ! Faltou passar como chamar o popupHora : <input type="text" name="obrigHora_ini" title="Horário de início" readonly size="5" maxlength="5" value=""> <input TYPE="button" NAME="btnData3" VALUE="..." Onclick="java script:pophora('document.form.obrigHora_ini','pop3','300',document.form.obrigHora_ini.value)"> <span id="pop3" style="position:absolute"></span>Agradeço qualuer ajuda.
JGD
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.