Ragazzi ho uno strano problema: in pratica il risultato che mi viene restituito utilizzando ajax e asp mi compare per un secondo soltanto e poi mi da errore sulla query sql.
l'esempio pratico potete vederlo a questo indirizzo:
www.assoluto.it/applicativo
USERNAME: zseven
PASSWORD: zseven
Selezionate dalla sinistra il 2°progetto.
quindi dal menu in alto scegliete report e selezionate come numero ordine il 234.
vedrete che vi caricherà un ordine. alla sinistra c'è un "+" che richiama la funzione in ajax.
Cliccandoci vedrete che vengono caricati per un attimo i risultati corretti, ma poi mi da questo errore sql.
Vi posto un pò di codice:
questa è la funzione standard in ajax che viene richiamata al click del pulsante:
codice:
<script language="javascript">
var ricerca_pro;
function cerca()
{
var valorecampo = document.form2.espandi.value;
// branch for native XMLHttpRequest object
if (window.XMLHttpRequest) {
ricerca_pro = new XMLHttpRequest();
ricerca_pro.onreadystatechange = ricevi;
ricerca_pro.open("GET", "det_report_fatture.asp?id="+valorecampo,true);
ricerca_pro.send(null);
// branch for IE/Windows ActiveX version
} else if (window.ActiveXObject) {
ricerca_pro = new ActiveXObject("Microsoft.XMLHTTP");
if (ricerca_pro) {
ricerca_pro.onreadystatechange = ricevi;
ricerca_pro.open("GET", "det_report_fatture.asp?id="+valorecampo,true);
ricerca_pro.send();
}
}
}
function ricevi() {
var strRes;
var arrValori;
if (ricerca_pro.readyState == 4) {
document.getElementById("det_fattura").innerHTML=ricerca_pro.responseText;
}
}
</script>
questo è il pulsante:
codice:
<form name="form2" style="margin:0">
<input title="espandi selezione" type="image" src="images/plus.gif" onClick="cerca();">
<input type="hidden" name="espandi" value="<%=rs2("ID_ordini")%>">
</form>
e infine questa è la pagina che viene richiamta dalla funzione ajax.
è una semplice query che mi restituisce un report:
codice:
<link href="style.css" rel="stylesheet" type="text/css" />
<%
'apro connessione e istanzio oggetti
pid = Request.QueryString("id")
if pid <> "" then
strsql = "SELECT tab_ordini.*, tab_fornitori.*, tab_fatture.* FROM tab_ordini, tab_fornitori, tab_fatture WHERE tab_fatture.id_progetto = " & Session("ID_progetto") & " AND tab_ordini.ID_ordini = tab_fatture.id_ordine AND tab_fornitori.ID_fornitori = tab_fatture.id_fornitore AND tab_fatture.elimina_fattura = false AND tab_fatture.id_ordine = "&pid&" ORDER BY tab_fatture.data_ft, tab_fatture.num_ft, tab_ordini.numero_ordine DESC"
set rs = conn.execute(strsql)
if not rs.eof then
%>
<table class="contenuti" style="border-collapse:collapse;" border="1" width="900" cellpadding="3" cellspacing="0">
<tr bgcolor="#C5C5C5">
<td ><span class="menu_bold">FORNITORE</span></td>
<td width="65"><span class="menu_bold">FATTURA</span></td>
<td width="100"><span class="menu_bold">DATA FATTURA</span></td>
<td ><span class="menu_bold">DESCRIZIONE</span></td>
<td ><span class="menu_bold">IMPORTO</span></td>
<td width="50"><span class="menu_bold">ANTICIPO</span></td>
</tr>
<%
conta = 0
Do While Not rs.EOF
conta = conta + 1
if conta MOD 2 = 0 then
bg = "#F8F8F8"
Else
bg = "#ECECEC"
end if
old_data = rs("data_ft")
anno = left(old_data, 4)
mese = mid(old_data, 5, 2)
giorno = mid(old_data, 7, 2)
data = giorno & "/" & mese & "/" & anno
if rs("conto_anticipo") = True then
conto_anticipo = "Sì"
else
conto_anticipo = "No"
end if
descrizione = replace(rs("descrizione_ft"), "
", VbCrlF)
%>
<tr bgcolor="<%=bg%>">
<td ><span class="contenuti"><%=rs("denominazione_fornitore")%></span></td>
<td ><span class="contenuti"><%=rs("num_ft")%></span></td>
<td ><span class="contenuti"><%=data%></span></td>
<td ><span class="contenuti" style="cursor:help" title="<%=server.HTMLEncode(descrizione)%>"><%=left(rs("descrizione_ft"),20)%>[...]</span></td>
<td ><span class="contenuti">€<%=formatnumber(rs("importo_ft"), 2)%></span></td>
<td ><span class="contenuti"><%=conto_anticipo%></span></td>
</tr>
<%
rs.MoveNext
Loop
%>
</table>
<%
end if
end if
%>
mi rendo conto che è un pò uncasino ma mi servirebbe davvero una mano.
Grazie a tutti.
Se non sono stato chiaro cercherò di spiegarmi meglio