Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,614

    utilizzare funzioni jquery in xmlhttprequest

    Salve
    ho questo script:
    codice:
    <script>
    function showHint(str) {
        if (str.length == -1) {
        } else {
            var xmlhttp = new XMLHttpRequest();
            xmlhttp.onreadystatechange = function() {
         if (this.readyState == 4 && this.status == 200) {
            document.getElementById("txtHint").innerHTML = this.responseText;
                }
            };
            xmlhttp.open("GET", "search.asp?q=" + str, true);
            xmlhttp.send();
        }
    }
    </script>
    <span id="txtHint">
    qui i risultati
    </span>
    che uso per filtrare risultati da db, nella stessa pagina principale uso uno script jquery che mi visualizza/nasconde una textarea:
    codice:
    <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
    <font face="Arial" size="2"  id="botas<%=rs.Fields("Id")%>"><u>Dettagli</u></font>
    <textarea  id="richiesta<%=rs.Fields("Id")%>" style="resize: none;width:  93%;display:none;" name="richiesta" rows="12" disabled cols="20" >
    <%=rs.Fields("Richiesta")%></textarea>
    <script>
    $(document).ready(function(){
        $("#botas<%=rs.Fields("Id")%>").click(function () {
          $("#richiesta<%=rs.Fields("Id")%>").toggle("slow");
        });    
        });
        </script>
    ora nella pagina principale funziona tutto mentre quando filtro i risultati e quindi la pagina search.asp
    che ha gli stessi script , questo script jquery non funziona, potete aiutarmi? c'è qualche metodo per capire il malfunzionamento per sistemare l'errore?
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,614
    ho fatto alcune modifiche, aggiungendo load() nella funzione httprequest:
    codice:
    <script>
    function showHint(str) {
        if (str.length == -1) {
        } else {
            var xmlhttp = new XMLHttpRequest();
            xmlhttp.onreadystatechange = function() {
         if (this.readyState == 4 && this.status == 200) {
            document.getElementById("txtHint").innerHTML = this.responseText;
    load();
                }
            };
            xmlhttp.open("GET", "search.asp?q=" + str, true);
            xmlhttp.send();
        }
    }
    </script>
    <span id="txtHint">
    qui i risultati
    </span>
    -------------partenza ciclo
    <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
    <font face="Arial" size="2"  id="botas<%=rs.Fields("Id")%>"><u>Dettagli</u></font>
    <textarea  id="richiesta<%=rs.Fields("Id")%>" style="resize: none;width:  93%;display:none;" name="richiesta" rows="12" disabled cols="20" >
    <%=rs.Fields("Richiesta")%></textarea>
    <script>
    function load()
    {
    $(document).ready(function(){
        $("#botas<%=rs.Fields("Id")%>").click(function () {
          $("#richiesta<%=rs.Fields("Id")%>").toggle("slow");
        });   
      });   
    }
    $(document).ready(function(){
        $("#botas<%=rs.Fields("Id")%>").click(function () {
        $("#richiesta<%=rs.Fields("Id")%>").toggle("slow");
    
        });   
      });   
    </script>
    Cosi facendo però essendo in un ciclo mi funziona solo un risultato invece di tutti
    Potete aiutarmi?
    Grazie

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,614
    nessun aiuto?

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Quote Originariamente inviata da djjunior Visualizza il messaggio
    nessun aiuto?
    Il codice mescola parti lato client e parti lato server.

    Da esso non si capisce bene qual è la natura dei dati che stai visualizzando, parte sulla quale non hai fornito indicazioni.

    Il feedback che hai dato sulla problematica è "non funziona", e hai pubblicato due versioni del codice, entrambe tagliate.

    Tutto ciò che si può dire è che, se la pagina contiene un ciclo e gli script che hai tutto ciò che segue l'etichetta
    -------------partenza ciclo
    si trova al suo interno, e pertanto verrà replicata per ogni elemento della pagina, dubito seriamente che possa funzionare qualsiasi soluzione adottata. Per dirne una, lo script di JQuery verrebbe importato N volte. Ci sarebbero anche N blocchi di gestione del document.ready() quando avrebbe senso disporne di solo uno.

    In conclusione, credo che tu debba approfondire innanzitutto come funziona JQuery e restituire una pagina che sia formalmente valida al client, verificando il sorgente finale della pagina stessa. Se qualcosa non va, dovresti dire che cosa, ad esempio riportando l'errore della console se presente. Per altri suggerimenti, dovresti anche raccontare un po' quello che stai cercando di fare.

    Per ottenere aiuto, devi prima aiutare noi a capire.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,614
    Ciao alka,
    hai ragione ma non so come spiegarmi di seguito posto le pagine così da essere forse + chiaro.
    In pratica nella pagina1.asp ho un link, su un ciclo elencato da db, che apre tramite funzione toggle jquery 2 textarea contemporaneamente
    nella stessa pagina1.asp ho un campo che filtra risultati recuperati dal db che tramite xmlhttprequest me li stampa sulla pagina search.asp
    Nella pagina search.asp dei link che dovrebbe aprirmi i 2 textarea di ogni risultato, ne funziona solo per l'ultimo risultato, credo che sia un problema di ciclo anche nelle funzione jquery ma non saprei come fare ecco le pagine:



    PAGINA1.ASP
    codice:
    <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
    <script>
    function showHint(str) {
        if (str.length == -1) {
        } else {
            var xmlhttp = new XMLHttpRequest();
            xmlhttp.onreadystatechange = function() {
         if (this.readyState == 4 && this.status == 200) {
            document.getElementById("txtHint").innerHTML = unescape(xmlhttp.responseText);
    load();
    
     }
            };
            xmlhttp.open("GET", "search.asp?q=" + str, true);
            xmlhttp.send();
    
        }
    
    
    }
    
    </script>
    
    <input type="text" name="q" size="40" placeholder="Filtra per parola chiave" onkeyup="showHint(this.value)" >
        
    <span id="txtHint">
    <%
    ....QUERY SQL.....
    if tot_record > 0 then
    
    for i=1 to PageSize
    if rs.eof<>true and rs.bof<>true then
    
    %>
    
    <font face="Arial" id="bot<%=rs.Fields("Id")%>"><u>Dettagli</u></font>
    <textarea id="xda<%=rs.Fields("Id")%>" name="richiesta" rows="12" disabled cols="20" ><%=rs.Fields("Richiesta")%></textarea>
    <textarea id="xdb<%=rs.Fields("Id")%>" " name="note" rows="12" disabled cols="20"><%=rs.Fields("Note")%></textarea>
    
    <script>
    function load(){
    
    $(document).ready(function(){
        $("#bot<%=rs.Fields("Id")%>").click(function() {
          $("#xda<%=rs.Fields("Id")%>").toggle("slow");
          $("#xdb<%=rs.Fields("Id")%>").toggle("slow");
        });   
      });  
    }
    
    $(document).ready(function(){
        $("#bot<%=rs.Fields("Id")%>").click(function() {
          $("#xda<%=rs.Fields("Id")%>").toggle("slow");
          $("#xdb<%=rs.Fields("Id")%>").toggle("slow");
        });   
      });   
    </script>
    
    <%
    RS.movenext
    end if
    next
    %></span>


    search.asp
    codice:
    <!DOCTYPE html>
    <head>
     <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
    </head>
    <body>
    <%
    QUERY SQL
    
    if tot_record > 0 then
    
    for i=1 to PageSize
    if rs.eof<>true and rs.bof<>true then
    %>
    <font face="Arial" id="bot<%=rs.Fields("Id")%>"><u>Dettagli</u></font>
    <textarea id="xda<%=rs.Fields("Id")%>" name="richiesta" rows="12" disabled cols="20" ><%=rs.Fields("Richiesta")%></textarea>
    <textarea id="xdb<%=rs.Fields("Id")%>" " name="note" rows="12" disabled cols="20"><%=rs.Fields("Note")%></textarea>
    <%
    RS.movenext
    end if
    next
    %>
    </body>
    </html>
    In pratica la funzione jquery della pagina1.asp dovrebbe essere trasportata sulla pagina tramite xmlhttprequest e loopata per ogni risultato.
    Spero in un vostro aiuto grazie
    Ultima modifica di djjunior; 18-12-2021 a 21:30

  6. #6
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,505
    non puoi eseguire codice js preso tramite chiamata ajax
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,614
    Grazie cosa puoi suggerirmi per fare funzionare correttamente questo script? Grazie

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,614
    nessun aiuto?

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Quote Originariamente inviata da djjunior Visualizza il messaggio
    nessun aiuto?
    Ti sono state date due risposte, e inoltre hai fatto anche crossposting su questo forum del medesimo problema: è inutile continuare a reiterare la richiesta d'aiuto e postare l'intero codice che hai scritto, tra l'altro eliminandone pezzi importanti e fornendo indicazioni generiche sul problema.

    Cerca di fare tesoro dei consigli che ti sono stati forniti e metti mano al codice attuando delle semplificazioni, oppure riparti da zero reintegrando il codice scritto ma affrontando uno step alla volte e verificando che funzioni, partendo da una implementazione più semplice e prototipale e aggiungendo elementi solo dopo averne verificato il funzionamento.

    Continuare a riportare tutto il codice, chiedere aiuto e sollecitare a ogni risposta, non sarà utile a nessuno, né agli altri utenti per darti indicazioni mirate, né a te per risolvere il problema in via definitiva.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,614
    avevo chiesto solo un suggerimento successivo alla pubblicazione delle pagine complete. grazie lo stesso

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.