首页 > 解决方案 > JavaScript Ajax 和邮件/票证

问题描述

我正在做一些项目,其中有一个 Bootstrap 模式,它可以发送票证,但我也想同时向同一个人发送电子邮件。但我错过了一些我猜的东西。

<div class="modal-body">
                            <form onsubmit="return false" id="new_message_form" autocomplete="off">
                                <input type="hidden" name="form_type" value="new_message">
                                <input type="hidden" name="ticket_id" id="ticket_id" value="<?=$id;?>">

                                <div class="row">
                                    <div class="col-md-12">
                                        <div class="form-group no-margin">
                                            <textarea class="ckeditor" id="message_new" name="message_new"></textarea>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="modal-footer">
                                <a href="#" class="btn btn-<?=$this->Configs->get_info("theme_buttons2");?>" data-dismiss="modal">Close</a>
                                <button id="ticket_message_add" class="btn <?=$this->Configs->get_info("theme_buttons");?>">Send</button>
                            </form>

并将其发送到 admin.js

    $("#ticket_message_update").click(function (){
    CKEDITOR.instances['message_update'].updateElement();
    $("#UpdateMessageModal").modal("hide");

    $.post(base_admin+"support", $("#update_message_form").serialize() ,function(data){

    var data= JSON.parse(data);

     if(data.update== 1){ 
$('#update_message_form')[0].reset();
location.reload();
}

  });
});

所以这就是事情。我有完整的 ajax 表单和 php 邮件系统。(github 上的 PHPMailer)当我单击发送按钮时,它会自动将电子邮件发送到目标邮件地址。但是当我尝试合并票证和电子邮件系统时,它似乎不起作用,但在逻辑上它应该是。

我在按钮/输入字段上添加功能

onclick="AjaxFunction();"

<button id="ticket_message_add" onclick="AjaxFunction();" class="btn <?=$this->Configs->get_info("theme_buttons");?>">Send</button>

并添加我的脚本;

<script>
                                function AjaxFunction() {
                                    var bilgi = {
                                        userid: $('#user').val(),
                                        ad: $('#ticket_id').val(),
                                        soyad: $('#message_new').val()
                                    }
                                    $.ajax({
                                        type: 'post',
                                        url: 'gonder.php',
                                        data: {query: bilgi},
                                        success: function(result) {

                                        }
                                    });

                                }
                            </script>

它需要将变量发送到“gonder.php”对吗?但事实并非如此。显然我错过了一些东西。

标签: javascriptphpajax

解决方案


您好尝试发送这样的数据:

 function AjaxFunction() {
    var bilgi = [{  
        userid: $('#user').val(),
        ad: $('#ticket_id').val(),
        soyad: $('#message_new').val()
    }];  

 $.ajax({
        type: 'post',
        url: 'gonder.php',
        data: {query: JSON.stringify(bilgi)},
        success: function(result) {

        }
      });
}

然后在服务器端:

<?php
$data = json_decode($_POST["query"]);
// will echo the JSON.stringified - string:
echo $_POST["query"];
// will echo the json_decode'd object
var_dump($data);
//traversing the whole object and accessing properties:
foreach($data as $cityObject){
    echo "userid: " . $cityObject->userid. ", ad: " . $cityObject->ad. "<br/>";
}
?>

希望能帮助到你


推荐阅读