За последние 24 часа нас посетил 17721 программист и 1658 роботов. Сейчас ищут 964 программиста ...

как передать переменные PHP по AJAX

Тема в разделе "JavaScript и AJAX", создана пользователем wolf777, 12 май 2015.

  1. wolf777

    wolf777 Новичок

    С нами с:
    26 авг 2014
    Сообщения:
    207
    Симпатии:
    0
    решил сделать модальное окно botstrap

    создал такую кнопу

    Код (PHP):
    1. <a data-toggle="modal" data-target="#myModal" 
    2. onclick="send('id={$email.id}')">
    такой mail.php код

    Код (PHP):
    1. <?php
    2. define("CLIENTAREA", true);
    3. require "init.php";
    4.  
    5. if (isset($_SESSION['uid'])) {
    6.     require "includes/smarty/Smarty.class.php";
    7.     $smarty = new Smarty();
    8.     $smarty->template_dir = "templates/" . $whmcs->get_sys_tpl_name() . "/";
    9.     $smarty->compile_dir = $templates_compiledir;
    10.     $smarty->assign("template", $whmcs->get_sys_tpl_name());
    11.     $smarty->assign("LANG", $_LANG);
    12.     $smarty->assign("companyname", $CONFIG['CompanyName']);
    13.     $smarty->assign("logo", $CONFIG['SystemURL']);
    14.     $id = $whmcs->get_req_var("id");
    15.     $result = select_query("tblemails", "", array("id" => $id, "userid" => $_SESSION['uid']));
    16.     $data = mysql_fetch_array($result);
    17.     $date = $data['date'];
    18.     $subject = $data['subject'];
    19.     $message = $data['message'];
    20.     $date = fromMySQLDate($date, "time");
    21.     $smarty->assign("date", $date);
    22.     $smarty->assign("subject", $subject);
    23.     $smarty->assign("message", $message);
    24.     $template_output = $smarty->fetch("mail.tpl");
    25.     echo $template_output;
    26.     return 1;
    27. }
    28. ?>

    и само модальное окно main.tpl

    Код (PHP):
    1. <!DOCTYPE html>
    2. <html lang="en">
    3.   <head>
    4.     <meta charset="utf-8">
    5.     <title>{$LANG.clientareaemails} - {$companyname}</title>
    6.   </head>
    7.  
    8.  
    9. <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="false">
    10.   <div class="modal-dialog">
    11.     <div class="modal-content">
    12.       <div class="modal-header">
    13.         <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="false">×</span></button>
    14.         <h4 class="modal-title" id="myModalLabel">
    15.         <p><strong>Пользователь:</strong></p>
    16.         <p><strong>Тема:</strong> {$companyname} {$logo} - {$subject}</p>
    17.         <p><strong>от кого:</strong></p>
    18.         <p><strong>Кому:</strong></p>
    19.         </h4>
    20.       </div>
    21.       <div class="modal-body">{$message}</div>
    22.       <div class="modal-footer">
    23.         <button type="button" class="btn btn-primary" data-dismiss="modal">Закрыть</button>
    24.       </div>
    25.     </div>
    26.   </div>
    27. </div>
    28.  
    29. </html>
    затем написал AJAX чтоб по ajax передавались переменные php


    Код (PHP):
    1. function send(dataToSend){
    2.        $.ajax({
    3.                 type: "GET",
    4.                 url: "mail.php?"+dataToSend,
    5.                 data: $("#myModal").serialize(),
    6.                 success: function(response) {
    7.  
    8. console.log(response);  //просто так, для отладки
    9. $("#subject").html(response[0]);
    10. $("#message").html(response[1]);
    11. $("#myModalLabel").show();
    12.                 }
    13.         });
    14.  
    15. }
    console.log(response); выдает все что должно вывести, а в модальное окно это все не выводится, что надо ещё дописать?

    Добавлено спустя 4 минуты 40 секунд:
    пытался как то в php дописать

    Код (PHP):
    1. $smarty_arr['subject'] = $subject;
    2. $smarty_arr['message'] = $message;
    3.  
    4. $smarty->assign("smarty_arr", $smarty_arr); //смысл в том, чтобы не делать assign каждый раз, а только один передав сразу массив данных
    5.     $template_output = $smarty->fetch("mail.tpl");
    6.     echo $template_output;
    7.     echo $array[$subject, $message]; 
    8.     return 1; 
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Всё правильно работает,
    $("#subject").html(response[0]);
    $("#message").html(response[1]);
    тегов с id subject и message нету