首页 > 解决方案 > 在 php 的另一个页面中从脚本打开引导模式

问题描述

在我的申请中有一个查询表。我的任务是当我提交查询表单时,它会发送一封电子邮件,如果电子邮件发送成功,我必须以模式显示成功消息。我正在文件中编写我的 sendemail 代码index.class.php。我必须在services.php文件中显示模态。我怎样才能做到这一点。我通过标题位置尝试了它,但它不起作用。我不知道它是否正确。这是我的代码:

index.class.php

 case "submitservceEnquiryMedical": 
          $mcpage = "services.php";
          if($this->sendMedicalservceenquiryEmail()) {
              $flmsg="success";
          }
          else {

             $flmsg="fail";
          }             
          header("Location: services.php?flMsg=$flmsg");
          exit();
          break;

服务.php

if(!EMPTY($_REQUEST['flmsg']))
        {
        $flmsg=$_GET['flmsg'];
        if($flmsg=='success') 
        {
        echo '<script> $("#Service-Enquiry").modal("show"); </script>';
        }
        else{
        echo '<script> $("#Service-Enquiry").modal("show"); </script>';
        }
        }
    <div class="modal fade" id="modal-success">
    <div class="modal-dialog">
    <div class="modal-content">
    <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
    <span aria-hidden="true">&times;</span></button>
    <h4 class="modal-title">Success</h4>
    </div>
    <div class="modal-body">
    <p>You have succesfully submitted</p>
    </div>
    <div class="modal-footer">
    <button type="button" class="btn btn-default pull-left" data-dismiss="modal">Close</button>

    </div>
    </div>
    <!-- /.modal-content -->
    </div>
    <!-- /.modal-dialog -->
    </div>
    <!-- /.modal -->

谁能帮帮我吗

标签: javascriptphpbootstrap-modal

解决方案


在我看来,这里存在不同的问题,您不能以这种方式使用标头位置,并且您正在 php 中进行 javascript 注入,在这种情况下确实不需要。我的解决方案,或者更好的是我在我的网站上做的事情是这样的:我对 PHP 方法(页面、函数、方法相同)进行了 ajax 调用,它发送电子邮件,从 ajax 传递所有值并打印答案客户端/ajax,以防邮件是否发送......所以OK或KO(在我的情况下00是OK)并且在ajax调用成功时我管理答案00所以ok等等......以你的方式您必须对此进行 ajax 调用

      sendMedicalservceenquiryEmail()

在成功时返回标志并在 ajax 中返回,如果标志成功则模态显示...如果有帮助,我会尝试附上我的代码,只是为了查看架构。

代码 PHP 我在其中进行 ajax 调用,传递名称、消息、电子邮件对象,而 destinatario 是收件人:

    setlocale(LC_TIME, 'it_IT');//Settiamo il timezone per l'orario
    date_default_timezone_set("Europe/Rome");
    $data = date("d-m-Y");
    $ora = date('G:i:A'); 
    /**
     * SESSION
     */
    $datiUtente = $_SESSION['datiUtente'];
    $utente = $datiUtente['username'];
    $profilo = $datiUtente['profilo']; 

    $email = $_REQUEST['destinatario'];
    $nome = $_REQUEST['nome'];
    $to = $email;
    $messaggio = trim($_REQUEST['messaggio']);
    $oggetto = trim($_REQUEST['oggetto']);
    $mittente = 'YOUR ACCOUNT@MAIL';

    if (filter_var($email, FILTER_VALIDATE_EMAIL) === false){
        $msg = '88'.'|';
        $error='background: url("../img/error.png") no-repeat scroll left top #ffd0dc;
                border: 1px solid #ac343d;
                margin: 5px 0 15px;
                padding: 5px 5px 5px 40px;';
        $msg .= ("<div style='$error'>Formato Email non valido</div>"); 
        $msg = str_replace('\n', '', $msg);
        $msg = str_replace('\r', '', $msg);
        print $msg;
        exit;
    }

    $message = "Email in arrivo da server <b>$mittente</b><br/>
                Inviata da : <b>$nome </b><br/> 
                Profilo utenza : <b>$profilo </b><br/><br/><br/>
                $messaggio ";
    $subject = $oggetto;   

    $menof = "'-f" . trim($mittente) . "'";

        if (strtoupper(substr(PHP_OS,0,3)=='WIN')) {
          $eol="\r\n";
        } elseif (strtoupper(substr(PHP_OS,0,3)=='MAC')) {
          $eol="\r";
        } else {
          $eol="\n";
        } 
        $now = rand();
        $headers = 'From: YOUR NOME YOURSURNAME<YOUR ACCOUNT MAIL>'.$eol;
        $headers .= 'Reply-To: YOUR NOME YOURSURNAME<YOUR ACCOUNT MAIL>'.$eol;
        $headers .= 'Return-Path: YOUR NOME YOURSURNAME<YOUR ACCOUNT MAIL>'.$eol; //risposta a...
        $headers .= "Message-ID:<".$now." TheSystem@".$_SERVER['SERVER_NAME'].">".$eol;
        $headers .= "X-Mailer: PHP v".phpversion().$eol; //Per non andare nello spam
        $mime_boundary=md5(time());
        $headers .= 'MIME-Version: 1.0'.$eol;
        $headers .= "Content-Type: text/html; boundary=\"".$mime_boundary."\"".$eol; 

        if (mail(trim($to), trim($subject), wordwrap(trim($message)), trim($headers),trim($menof))){   
            $msg = '00'.'|';
            $msg .= ("L'email è stata inviata correttamente"); 
            $msg = str_replace('\n', '', $msg);
            $msg = str_replace('\r', '', $msg);
            print $msg;                 
            exit;           
        }
        else{
            $msg = '99'.'|';
            $msg .= ("Invio Email FALLITO!!!"); 
            $msg = str_replace('\n', '', $msg);
            $msg = str_replace('\r', '', $msg);
            print $msg;
            exit;   
        }

单击按钮发送邮件,我调用此函数,该函数在 php 上进行调用

 function inviaEmailCliente(){

    var nome = $('#nomeMail').val(); 
    var messaggio = $('#messaggioMail').val(); 
    var oggetto = $('#oggettoMail').val(); 
    var destinatario = $('#destinatarioMail').val(); 

    if (oggetto == false){
        $('#contenutoInserimentoAna').html('Oggetto Obbligatorio');
        $('#modalAnagrafica').modal('show');
        $('#modalAnagrafica').on('hidden.bs.modal', function(){
           $('#modalVarAnagrafica').modal('hide');
        });
        return;
    }
    if (messaggio == false){
        $('#contenutoInserimentoAna').html('Messaggio Obbligatorio');
        $('#modalAnagrafica').modal('show');
        $('#modalAnagrafica').on('hidden.bs.modal', function(){
           $('#modalVarAnagrafica').modal('hide');
        }); 
        return;
    }
    if (nome == false){
        $('#contenutoInserimentoAna').html('Nome Obbligatorio');
        $('#modalAnagrafica').modal('show');
        $('#modalAnagrafica').on('hidden.bs.modal', function(){
           $('#modalVarAnagrafica').modal('hide');
        });
        return;
    }


    $.ajax({
      type: "POST",
      url: "../index.php",
      dataType: "html",
      data : { azione : 'inviaEmailCliente',
               messaggio : messaggio,
               oggetto : oggetto,
               destinatario : destinatario,
               nome : nome },    
      success:function(data){

            dati = data.replace(/(\r\n|\n|\r)/gm,"");

            if (dati.length > 0){
              dati = dati.split('|'); 

              if (dati[0] == '00'){
                $('#contenutoInserimentoAna').html(dati[1]);
                $('#modalAnagrafica').modal('show');
                $('#modalAnagrafica').on('hidden.bs.modal', function(){
                   $('#modalAnagrafica').modal('hide');
                   $('#nomeMail').val(''); 
                   $('#messaggioMail').val(''); 
                   $('#oggettoMail').val(''); 
                   location.reload();
                });
              }
              if (dati[0] == '88'){
                $('#contenutoInserimentoAna').html(dati[1]);
                $('#modalAnagrafica').modal('show');
                $('#modalAnagrafica').on('hidden.bs.modal', function(){
                   $('#modalVarAnagrafica').modal('hide');
                }); 
              }
              if (dati[0] == '99'){
                $('#contenutoInserimentoAna').html(dati[1]);
                $('#modalAnagrafica').modal('show');
                $('#modalAnagrafica').on('hidden.bs.modal', function(){
                   $('#modalAnagrafica').modal('hide');
                }); 
              }

            }          
      },
      error:function (){
        alert ('Errore di comunicazione con il server');
      }                        
    }); 
 }

插入电子邮件的 HTML 形式,我不粘贴 css ......但命中是形式..

    <input type="hidden" id="destinatarioMail" value="WRITE HERE THE ADRESS WHERE SENDS THE EMAIL{email} TO@EXAMPLE.COM" >
        <div class="containerBorder padding3">
            <div class="alert-warning">
            <p><b>L'email sarà inviata a {email}</b></p>
            </div>
            <div class="row">
                <div class="input-group">
                    <span class="input-group-addon testoBlu" id="nomeInvioMail">Nome *</span>
                    <input type="text" id="nomeMail" class="form-control" aria-describedby="nomeInvioMail" /> 
                </div>
                <div class="input-group">
                    <span class="input-group-addon testoBlu" id="oggettoInvioMail">Oggetto *</span>
                    <input type="text" id="oggettoMail" class="form-control" aria-describedby="oggettoInvioMail" /> 
                </div>
                <div class="input-group">
                    <span class="input-group-addon testoBlu" id="messaggioEmailCli">Messaggio Mail *</span>
                    <textarea class="form-control" id="messaggioMail" aria-describedby="messaggioEmailCli" style="max-width: 724px; max-height: 130px;"> </textarea>
                </div>
            </div>
        <br>
        <div align="center">
            <input type="button" class="btn btn-danger" value="Invia" id="inviaEmailCli" onclick="inviaEmailCliente()" />
        </div>
        </div>

这是模态的 html

        <div class="modal fade" id="modalAnagrafica" data-backdrop="static" tabindex="-1" role="dialog" aria-labelledby="myModalLabelAnagrafica">
          <div class="modal-dialog" role="document">
            <div class="modal-content">
              <div class="modal-header modal-header-primary">
                <h4 class="modal-title modalHeaderText" id="myModalLabelAnagrafica"><b>Anagrafica</b></h4>
              </div>
              <b><div class="modal-body" id="contenutoInserimentoAna">
              </div></b>
              <div class="modal-footer justify-content-center">
                <div align="center">
                    <button class="btn btn-success btn-xs" data-dismiss="modal">Chiudi</button>
                </div>
              </div>
            </div>
          </div>
        </div>

推荐阅读