Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    9

    Richiamare php con javascript

    Salve a tutti, premetto che non sono ferrato con javascript..

    In pratica ho una pagina su cui vengono visualizzati alcuni recapiti telefonici quando clicco su un tag <a>..ho usato javascript per fare ciò e funziona...ora vorrei fare in modo che quando un utente clicca sul link per visualizzare i recapiti nascosti, venga inviata una mail automaticamente..la mail viene generata in php e sta in un file che si chiama mail_richiesta_recapito.php

    il codice che ho usato è il seguente:

    Codice PHP:
    $destinatario ="info@prova.it";
    $oggetto ="Richesta Recapito Telefonico";
    $messaggio="Un utente ha richiesto i suoi recapiti telefonici sul portale Provaprova.it";
    $headers "From: provaprova.it <info@prova.it>";
    mzail ($destinatario$oggetto$messaggio$headers); 
    mentre per nascondere/visualizzare i recapiti ho usato il seguente codice javascript:

    codice:
    <script type="text/javascript" language="javascript">
    function visualizza(id){
      if (document.getElementById){
        if(document.getElementById(id).style.display == 'none'){
          document.getElementById(id).style.display = 'block';
        }else{
          document.getElementById(id).style.display = 'none';
        }
      }
    }
    </script>
    Codice che viene richiamato onclick su un div..

    Funziona, ma non capisco come richiamare la funzione mail_richiesta_recapito.php...io ho provato a farlo aggiungendo una seconda funzione sull'onclick...vi posto il file completo...se riuscite a darmi una mano lo apprezzo:



    codice:
    <script type="text/javascript" language="javascript">
    function visualizza(id){
      if (document.getElementById){
        if(document.getElementById(id).style.display == 'none'){
          document.getElementById(id).style.display = 'block';
        }else{
          document.getElementById(id).style.display = 'none';
        }
      }
    }
    </script>
    
    
    <script type="text/javascript" language="javascript">
    function inviamail() {
          $.ajax({
               type: "POST",
               url: 'mail_richiesta_recapito.php',
               data:{action:'call_this'},
               success:function(html) {
                 alert(html);
               }
    
    
          });
     }
    </script>
    Codice PHP:
    <div class="contattistruttura">
    <?php if(get_post_metaget_the_ID(), 'fiemme_nome'true ) != '') { ?>
        <p><strong><?php echo get_post_metaget_the_ID(), 'fiemme_nome'true );?></strong></p> 
    <?php ?>
    <div id="testo"><a href="#" onclick="visualizza('recapiti'); inviamail(); return false"><strong>Visualizza Recapiti Telefonici</strong></a></div>
    <div id="recapiti" style="display:none;">
    <?php if(get_post_metaget_the_ID(), 'fiemme_telefono'true ) != '') { ?>
        <p><strong>Telefono</strong>: <?php echo get_post_metaget_the_ID(), 'fiemme_telefono'true );?></p> 
    <?php ?>
    <?php 
    if(get_post_metaget_the_ID(), 'fiemme_laboratorio'true ) != '') { ?>
        <p><strong>Laboratorio</strong>: <?php echo get_post_metaget_the_ID(), 'fiemme_laboratorio'true );?></p> 
    <?php ?>
    <?php 
    if(get_post_metaget_the_ID(), 'fiemme_cellulare'true ) != '') { ?>
        <p><strong>Cellulare</strong>: <?php echo get_post_metaget_the_ID(), 'fiemme_cellulare'true );?></p> 
    <?php ?>
    <?php 
    if(get_post_metaget_the_ID(), 'fiemme_fax'true ) != '') { ?>
        <p><strong>Fax</strong>: <?php echo get_post_metaget_the_ID(), 'fiemme_fax'true );?></p> 
    <?php ?>
    </div>
    <?php if(get_post_metaget_the_ID(), 'fiemme_url'true ) != '' && get_post_metaget_the_ID(), 'fiemme_url'true ) != 'http://') { ?>
        <p><a href="<?php $url =  get_post_metaget_the_ID(), 'fiemme_url'true ); $url str_replace("http://","",$url);  echo 'http://' $url?>" target="_blank" rel="nofollow"><strong>Visita il sito web</strong></a></p> 
    <?php ?>
    <?php 
    if(get_post_metaget_the_ID(), 'fiemme_facebook'true ) != '' && get_post_metaget_the_ID(), 'fiemme_facebook'true ) != 'https://') { ?>
        <p><a href="<?php $url =  get_post_metaget_the_ID(), 'fiemme_facebook'true ); $url str_replace("https://","",$url);  echo 'https://' $url?>" target="_blank" rel="nofollow"><strong>Pagina facebook</strong></a></p> 
    <?php ?>
    </div>
    <?php if(get_post_metaget_the_ID(), 'fiemme_email'true ) != '') { ?><hr />
    <div class="formstruttura">
    [gravityforms id="1" title="false"]
    </div>
    <?php ?>
    Ultima modifica di ciro78; 29-08-2016 a 20:03 Motivo: tag code

  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    ciao benvenuto sul forum
    ti consiglio, se non lo hai già fatto, di leggere con attenzione il regolamento del forum. In esso trovi come impostare una discussione in modo corretto. Questo consente a chi ti vuole aiutare di poterlo fare senza decifrare quello che hai scritto. Nel dettaglio ci sono i tag code e php che ti consentono di formattare bene il codice.

    Per adesso ho modificato io in quanto sei nuovo sul forum.

    Detto questo potresti fare una cosa del genere

    codice:
    function visualizza(id){
      if (document.getElementById){
        if(document.getElementById(id).style.display == 'none'){
          document.getElementById(id).style.display = 'block';
          inviamail(id);
    
        }else{
          document.getElementById(id).style.display = 'none';
        }
      }
    }
    
    
    
    function inviamail(id) {
          $.ajax({
               type: "POST",
               url: 'mail_richiesta_recapito.php?id='+id,
               data:{action:'call_this'},
               success:function(html) {
                 alert(html);
               }
    
    
          });
     }
    le parti in grassetto sono quelle da me modificate
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    9
    Grazie ciro e scusa se non ho usato i tag code...due domande:

    1) il file php mail_richiesta_recapito.php dove devo andare a piazzarlo per farlo prelevare correttamente allo script? perchè ora non lo vede...io uso wordpress...devo impostare il path completo al parametro url prelevandolo da ftp o dovrebbe vederlo automaticamente?

    2) Se invece di mandare la mail volessi impostare un contatore per vedere quanti click vengono fatti sul link Visualizza Recapiti Telefonici, come potrei fare? Immagino che dovrei tener conto delle sessioni in modo da evitare la situazione in cui un utente si mette a cliccare a ripetizione su quel link...a me basterebbe fare in modo che quando viene visualizzato quel div, dopo il click sul link, il contatore si aggiorna e rimane uguale fino alla chiusura del browser, anche se lo stesso utente continua a cliccarci sopra per aprirlo e chiuderlo..

    Grazie per il tuo prezioso aiuto

  4. #4
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Quote Originariamente inviata da gugu85 Visualizza il messaggio
    Grazie ciro e scusa se non ho usato i tag code...due domande:

    1) il file php mail_richiesta_recapito.php dove devo andare a piazzarlo per farlo prelevare correttamente allo script? perchè ora non lo vede...io uso wordpress...devo impostare il path completo al parametro url prelevandolo da ftp o dovrebbe vederlo automaticamente?

    2) Se invece di mandare la mail volessi impostare un contatore per vedere quanti click vengono fatti sul link Visualizza Recapiti Telefonici, come potrei fare? Immagino che dovrei tener conto delle sessioni in modo da evitare la situazione in cui un utente si mette a cliccare a ripetizione su quel link...a me basterebbe fare in modo che quando viene visualizzato quel div, dopo il click sul link, il contatore si aggiorna e rimane uguale fino alla chiusura del browser, anche se lo stesso utente continua a cliccarci sopra per aprirlo e chiuderlo..

    Grazie per il tuo prezioso aiuto
    ciao. le domande che poni non hanno nulla a che vedere con js. il mio consiglio è quindi aprire per la domanda "a" una discussione nel forum cms e per la domanda "b" nel forum php.


    può darsi che ti rispondano:
    1: devi creare una cartella dove mettere un file htaccess con mod rewrite off
    2: si servono le sessioni

    ma come detto devi postare li.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    9
    Grazie mille per il tuo aiuto, aprirò una discussione nel forum PHP visto che alla fine sono riuscito a risolvere il primo problema, gentilissimo

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    9
    Salve, sono di nuovo qui...sono riuscito a sistemare un po di cose lato php...ora ho modificato un po quello che vorrei ottenere..

    In pratica ho una variabile $kk a cui ho assgnato l'id del post di wordpress facendo:

    Codice PHP:
    <?php $kk get_the_ID(); ?>
    Ho sempre i due script iniziali, uno che apre il div recapiti e l'altro che invia dei valori a un file click_counter.php che a sua volta scrive i risultati in click_counter.txt:

    1) Javascript che mostra/nasconde il div:

    codice:
    <script type="text/javascript" language="javascript">
    function visualizza(id){
      if (document.getElementById){
        if(document.getElementById(id).style.display == 'none'){
          document.getElementById(id).style.display = 'block';
        }else{
          document.getElementById(id).style.display = 'none';
        }
      }
    }
    </script>
    2) Ajax che prende i dati da mandare a click_counter.php:

    codice:
    <script type="text/javascript" language="javascript">
    function clickcounter(id) {
          jQuery.ajax({
            method: 'POST',                    
            url : 'click_counter.php?id='+id,
            data:{'id_struttura' : 'id'},
            dataType : 'html',
            success: function (data) {
              jQuery("#recapiti").html(data);
              alert (id);
               }
          });
     }
    </script>

    3) file click_counter.php (lasciate perdere la funzione conta click che implementerò dopo, per ora mi interessa solo la stampa su file del valore della variabile $kk):

    Codice PHP:
    <?php
    ini_set
    ('display_errors''On');$contatore=0;$idstruttura $_POST["id_struttura"];
    $fp fopen("click_counter.txt""w+");if(!$fp) die ("<strong>Errore nella connessione con il file txt</strong>");
    $contatore=$contatore+1;
    fwrite($fp"Numero di click: $contatore, Id della Struttura: $idstruttura");
    fclose($fp);
    ?>
    Infine il codice del link che fa partire la chiamata:

    Codice PHP:
    <div id="testo"><a href="#" onclick="visualizza('recapiti'); clickcounter('<?php echo $kk?>'); return false"><strong>Visualizza Recapiti Telefonici</strong></a></div>
    Il mio problema è che non riesco a passare la variabile $kk al file click_counter.php.
    La funzione in questione riceve la variabile che ho passato tramite l'onclick, infatti l'alert (id); che ho piazzato nella funzione 2 mi restituisce l'id del post, ma non riesco a mandarlo al file php.

    l'istruzione data:{'id_struttura' : 'id'} non invia a click_conuter.php il valore di $kk, ma proprio il valore testuale id..

    Dove sbaglio?

    Come sempre grazie
    Ultima modifica di gugu85; 01-09-2016 a 13:19

  7. #7
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Quote Originariamente inviata da gugu85 Visualizza il messaggio
    Salve, sono di nuovo qui...sono riuscito a sistemare un po di cose lato php...ora ho modificato un po quello che vorrei ottenere..

    In pratica ho una variabile $kk a cui ho assgnato l'id del post di wordpress facendo:

    Codice PHP:
    <?php $kk get_the_ID(); ?>
    Ho sempre i due script iniziali, uno che apre il div recapiti e l'altro che invia dei valori a un file click_counter.php che a sua volta scrive i risultati in click_counter.txt:

    1) Javascript che mostra/nasconde il div:

    codice:
    <script type="text/javascript" language="javascript">
    function visualizza(id){
      if (document.getElementById){
        if(document.getElementById(id).style.display == 'none'){
          document.getElementById(id).style.display = 'block';
        }else{
          document.getElementById(id).style.display = 'none';
        }
      }
    }
    </script>
    2) Ajax che prende i dati da mandare a click_counter.php:

    codice:
    <script type="text/javascript" language="javascript">
    function clickcounter(id) {
          jQuery.ajax({
            method: 'POST',                    
            url : 'click_counter.php?id='+id,
            data:{'id_struttura' : 'id'},
            dataType : 'html',
            success: function (data) {
              jQuery("#recapiti").html(data);
              alert (id);
               }
          });
     }
    </script>

    3) file click_counter.php (lasciate perdere la funzione conta click che implementerò dopo, per ora mi interessa solo la stampa su file del valore della variabile $kk):

    Codice PHP:
    <?php
    ini_set
    ('display_errors''On');$contatore=0;$idstruttura $_POST["id_struttura"];
    $fp fopen("click_counter.txt""w+");if(!$fp) die ("<strong>Errore nella connessione con il file txt</strong>");
    $contatore=$contatore+1;
    fwrite($fp"Numero di click: $contatore, Id della Struttura: $idstruttura");
    fclose($fp);
    ?>
    Infine il codice del link che fa partire la chiamata:

    Codice PHP:
    <div id="testo"><a href="#" onclick="visualizza('recapiti'); clickcounter('<?php echo $kk?>'); return false"><strong>Visualizza Recapiti Telefonici</strong></a></div>
    Il mio problema è che non riesco a passare la variabile $kk al file click_counter.php.
    La funzione in questione riceve la variabile che ho passato tramite l'onclick, infatti l'alert (id); che ho piazzato nella funzione 2 mi restituisce l'id del post, ma non riesco a mandarlo al file php.

    l'istruzione data:{'id_struttura' : 'id'} non invia a click_conuter.php il valore di $kk, ma proprio il valore testuale id..

    Dove sbaglio?

    Come sempre grazie

    a non aprire una nuova discussione
    in genere problemi diversi richiedono discussioni diverse detto ciò id va passato senza apici
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    9
    scusami per nn aver aperto la nuova discussione e grazie...funziona

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.