Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    283

    integrare funzione alert in ajax

    buongiorno a tutti.
    premetto che il mio campo è asp e javascrfipt e ajax non è il mio forte. Ho una pagina asp che tramite ajax da la possibilità di scegliere varie opzioni senza ricaricare tutte le volte la pagina come farei con asp.

    adesso ho da aggiungere un controllo sul numero di checkbox selezionato limitarne la selezione e obbligare una selezione minima.

    ho trovato vari script online che riescono a limitarne la selezione però non riesco ad integrarlo con lo script ajax che ho già. cioè se il numero è fisso lo scrivo dello script e questo funziona ma se il numero da selezionare cambia e quindi ci metto una variabile asp questo non funziona. vi posto un po di codice per farvi capire meglio.

    ---------------------------------------
    SCRIPT AJAX
    ---------------------------------------
    var estrai_colori_di_stampa;
    var numero_colori_di_stampa;


    function cerca_colori_di_stampa()
    {numero_colori_di_stampa=document.form.numero_colo ri_di_stampa.options[document.form.numero_colori_di_stampa.selectedInde x].value
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
    estrai_colori_di_stampa= new XMLHttpRequest();
    estrai_colori_di_stampa.onreadystatechange = ricevi_colori_di_stampa;
    estrai_colori_di_stampa.open("GET", "/e-commerce/negozio/prodotto_personalizzato.asp?numero_colori_di_stamp a=" + numero_colori_di_stampa , true);
    estrai_colori_di_stampa.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
    estrai_colori_di_stampa= new ActiveXObject("Microsoft.XMLHTTP");
    if (estrai_colori_di_stampa) {
    estrai_colori_di_stampa.onreadystatechange = ricevi_colori_di_stampa;
    estrai_colori_di_stampa.open("GET", "/e-commerce/negozio/prodotto_personalizzato.asp?numero_colori_di_stamp a=" + numero_colori_di_stampa , true);
    estrai_colori_di_stampa.send();}}}


    function ricevi_colori_di_stampa() {
    var colore;
    if (estrai_colori_di_stampa.readyState == 4) {
    colore=estrai_colori_di_stampa.responseText;
    document.getElementById('colori').innerHTML = colore;}

    ---------------------------------------
    SCRIPT CHE HO TROVATO ONLINE
    ---------------------------------------
    var conta=0;
    function ctr(quale)
    {
    if (quale.checked)
    {
    conta++;
    if (conta > 1)
    {
    alert("Si possono esprimere al massimo 4 preferenze !");
    quale.checked=false;
    conta--;
    }
    }
    else
    {
    conta>0?conta--:null;
    }
    }
    ---------------------------------------
    FUNZIONE CHE VIENE RICHIAMATA TRAMITE ONCLICK
    ---------------------------------------
    <input onClick="ctr(this)" type="checkbox" id="colore_stampa" name="colori_di_stampa1" value=" oro lucido-01" title="oro lucido">

    ------------------------------------------------------------
    sono giorni che ci provo e non ne levo le gambe.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    La chiamata ajax si può ottimizzare http://www.w3schools.com/ajax/ajax_intro.asp estrai_colori_di_stampa.responseText; cosa restituisce? checkbox vengono creati dinamicamente? Se la risposta è si ricordati che gli id devono essere univoci
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    283
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    La chiamata ajax si può ottimizzare http://www.w3schools.com/ajax/ajax_intro.asp estrai_colori_di_stampa.responseText; cosa restituisce? checkbox vengono creati dinamicamente? Se la risposta è si ricordati che gli id devono essere univoci
    purtroppo non sono in grado di ottimizzarla questo script l'ho trovato online e l'ho solo adattato .... funziona ..... estrai_colori_di_stampa.responseText; restituisce una tabella con 24 celle colorate nelle quali si trova il checkbox da selezionare, no le checkbox sono 24 e gli id posso essere anche univoci li avevo messi uguali perchè ho fatto più prove e alcuni script li richiedevano uguali.

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ti seguo il giusto, visto che il response della chiamata Ajax restituisce una griglia e i relativi checkbox aggiungigli l'evento onclick direttamente in linea che richiami la funzione ctr
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    283
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    aggiungigli l'evento onclick direttamente in linea che richiami la funzione ctr
    scusa l'ignoranza ma cosa significa ?

    riprovo a spiegarmi.

    ho la pagina iniziale con il richiamo al codice Ajax e il div dove estrai_colori_di_stampa.responseText; scrive
    index.asp

    la pagina js con il codice Ajax
    estrai.js

    e la pagina dove vengono estratti i dati dal database e dove ci sono i
    checkbox compreso
    <input onClick="ctr(this)" type="checkbox" id="colore_stampa" name="colori_di_stampa1" value=" oro lucido-01" title="oro lucido">
    prodotto_personalizzato.asp

    ho fatto diverse prove, se il codice javascript
    ---------------------------------------
    var conta=0;
    function ctr(quale)
    {
    if (quale.checked)
    {
    conta++;
    if (conta > 1)
    {
    alert("Si possono esprimere al massimo 4 preferenze !");
    quale.checked=false;
    conta--;
    }
    }
    else
    {
    conta>0?conta--:null;
    }
    }
    ---------------------------------------
    lo inserisco in index.asp o estrai.js funziona ma devo inserire un valore numerico
    if (conta > 1) e non if (conta > <%=numero_colori%>)

    per poter inserire <%=numero_colori%> lo script dovrebbe trovarsi in prodotto_personalizzato.asp ma se lo inserisco qui non funziona.

    a questo punto vi chiedo come potrei integrare numero_colori_di_stampa del file estrai.js
    estrai_colori_di_stampa.open("GET", "/e-commerce/negozio/prodotto_personalizzato.asp?numero_colori_di_stamp a=" + numero_colori_di_stampa , true);

    così inserirei lo script
    ---------------------------------------
    var conta=0;
    function ctr(quale)
    {
    if (quale.checked)
    {
    conta++;
    if (conta > numero_colori_di_stampa)
    {
    alert("Si possono esprimere al massimo 4 preferenze !");
    quale.checked=false;
    conta--;
    }
    }
    else
    {
    conta>0?conta--:null;
    }
    }
    ---------------------------------------
    nella pagina estrai.js


  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Proseguono le mie difficoltà a seguirti, prova a passare il numero colori direttamente alla funzione onClick="ctr(this,<%=numero_colori%>)" function ctr(quale, quantita) if (conta > quantita)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    283
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    Proseguono le mie difficoltà a seguirti, prova a passare il numero colori direttamente alla funzione onClick="ctr(this,<%=numero_colori%>)" function ctr(quale, quantita) if (conta > quantita)
    perfetto andrea ... adesso funziona

    var conta=0;
    function ctr(quale, quantita)
    {if (quale.checked)
    {conta++;
    if (conta > quantita)
    {if (quantita > 1)
    testo_colori=" colori soli"
    else
    testo_colori=" colore solo"
    alert("devi selezionare " + quantita + testo_colori);
    quale.checked=false;
    conta--;}}
    else
    {conta>0?conta--:null;}}

    <input onClick="ctr(this,<%=numero_colori_di_stampa%>)" type="checkbox" id="colore_stampa" name="colori_di_stampa1" value=" oro lucido-01" title="oro lucido">

    e se volessi che l'utente selezioni il numero di colori per forza ?
    adesso se ne seleziona di più viene avvertito, ma se ne selezionasse meno ? è possibile ?

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 © 2025 vBulletin Solutions, Inc. All rights reserved.