Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [javascript + php] passaggio variabile a popup

    Ciao a tutti, avrei un problema con un passaggio di variabili in javascript.
    praticamente ho il seguente codice javascript che si limita solamente ad aprire una popup.

    <script language=Javascript>
    function Popup(id){ //Apre centrato rispetto la finestra madre

    var w = 400;
    var h = 250;
    var l = Math.floor((screen.width-w)/2);
    var t = Math.floor((screen.height-h)/2);

    window.open("add_contact.php?id_cliente=" + id.value + ","","width=" + w + ",height=" + h + ",top=" + t + ",left=" + l);


    }
    </script>


    la funzione Popup viene richiamata in una pagina php e il parametro che deve passare alla popup è un id.

    <a href=\"javascript:Popup('$id_cliente');\">

    sapreste dirmi come mai mi da errore e non apre neanke la popup?
    scusatemi se è uan domanda stupida ma di javascript non conosco proprio nulla
    grazie a tutti
    ciao
    "Se esprimi un desiderio è perchè vedi cadere una stella.
    Se vedi cadere una stella è perchè guardi il cielo.
    Se guardi il cielo, è perchè credi ancora in qualcosa." by Bob Marley

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    La funzione mi pare che non sia a posto.

    id e` una stringa, e non puoi trovare il value di una stringa.
    Forse e` l'id di un campo di testo, ma allora il codice e` diverso.
    Inoltre non mi piace l'uso della variabile id: id e` parola chiave e usarla come nome di avriabile potrebbe avere effetti collaterali.
    codice:
    function Popup(idv){ //Apre centrato rispetto la finestra madre
      var w = 400;
      var h = 250;
      var l = Math.floor((screen.width-w)/2);
      var t = Math.floor((screen.height-h)/2);
      var v = document.getElementById(idv).value;
      window.open("add_contact.php?id_cliente=" + v + ", 
    "","width=" + w + ",height=" + h + ",top=" + t + ",left=" + l);
    }
    Nota l'acapo nella window.open non ci va.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Ho provato ad usare il tuo codice ma nn va lo stesso.
    Non so dove sta l'errore.
    Io nella chiamata della funzione popup metto tra parentesi il valore che deve passare.
    Ho provato a metterlo solo tra parentesi (valore), tra apici ('valore') e tra virgolette ("valore") ma non va. Mi da errore e non carica la popup.
    A questo punto mi chiedo se il problema sta nella chiamata o nel codice della funzione.
    Avete soluzioni?
    Grazie
    Ciao
    "Se esprimi un desiderio è perchè vedi cadere una stella.
    Se vedi cadere una stella è perchè guardi il cielo.
    Se guardi il cielo, è perchè credi ancora in qualcosa." by Bob Marley

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    apici o virgolette hanno la stessa funzione, ma non si puo` mescolarli.

    Posta la chiamata, perche` dipende da cosa e` la variabile.
    Il mio codice dovrebbe funzionare (ma gli errori capitano sempre a tradimento), se passi il valore dell'attributo id del campo e se il campo e` di tipo text o textarea.

    Per cercare l'errore e` opportuno usare degliopportuni alert() dentro la funzione per verificare cosa arriva e cosa viene letto.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    questa è la chiamata:

    <a href=\"javascript:Popup('$id_cliente');\">

    ho provato anche a metterci direttamente un valore in questo modo:
    <a href=\"javascript:Popup('3');\">

    ma continua a darmi errore.
    E la popup nn viene caricata quindi il problema penso sia nella chiamata.
    Nn ci sto capendo molto, io sono programmatore php e di javascript nn so molto, vi prego aiutatemi
    grazie
    "Se esprimi un desiderio è perchè vedi cadere una stella.
    Se vedi cadere una stella è perchè guardi il cielo.
    Se guardi il cielo, è perchè credi ancora in qualcosa." by Bob Marley

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Io di PHP ci capisco poco (lato server ho usato solo CGI in Perl), quindi non so cosa sia quell avariabile che passi.

    Comunque deve essere identica a quanto contenuto nell'attributo id di un campo text:

    <a href="#" onclick="Popup('$id_cliente');">

    <input type='text' value='$id_cliente' ...>

    Controlla sempre cosa arriva al browser: il JS utilizza quello, non quello che scrivi nel srgente PHP.

    Nella funzione aggiungi gli alert:
    function Popup(idv){ //Apre centrato rispetto la finestra madre
    alert("parametro: "+idv);
    var w = 400;
    var h = 250;
    var l = Math.floor((screen.width-w)/2);
    var t = Math.floor((screen.height-h)/2);
    var v = document.getElementById(idv).value;
    alert("value: "+v);
    window.open("add_contact.php?id_cliente=" + v + ",
    "","width=" + w + ",height=" + h + ",top=" + t + ",left=" + l);
    }

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    allora, al browser il parametro id_cliente, ossia quello ke devo passare al javascript è corretto.
    il problema è ke appena clicco mi da "errore nella visualizzazione della pagina".
    non so + cosa tentare
    "Se esprimi un desiderio è perchè vedi cadere una stella.
    Se vedi cadere una stella è perchè guardi il cielo.
    Se guardi il cielo, è perchè credi ancora in qualcosa." by Bob Marley

  8. #8
    UP!!!!
    "Se esprimi un desiderio è perchè vedi cadere una stella.
    Se vedi cadere una stella è perchè guardi il cielo.
    Se guardi il cielo, è perchè credi ancora in qualcosa." by Bob Marley

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Il mio ultimo post aveva tre punti importanti. Mi pare che tu abbia preso in considerazione solo uno ...
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.