Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.05.2019, 15:50
Новичок на форуме
Отправить личное сообщение для Hrustix Посмотреть профиль Найти все сообщения от Hrustix
 
Регистрация: 01.05.2019
Сообщений: 1

Проблема с выводом информации ajax/json_encode
Добрый день!
Столкнулся с проблемой: данные выводятся после перезагрузки страницы. Бился долго, вот решил попросить помощи
Код send.php
<?php 
error_reporting(-1);
require 'rb.php';
 
 R::setup('mysql:host=127.0.0.1; dbname=ajax_test', 'root', '');
 
 if (!R::testConnection()) 
 {
    exit('Не удалось соединиться с базой данных!');
 }
R::freeze(true);
$data = $_POST;
if (isset($data['submit_data'])) {
    $user_id = intval($data['user_id']);
    $user_name = $data['username'];
    $message = $data['message'];
    $ip = $_SERVER['REMOTE_ADDR'];    
    $errors = array();
    $result = preg_match("/[<>]/", $message);
  if ($message == '' || $result == TRUE) {
    $errors[] = 'Недопустимые символы!';
  }
 
    if (empty($data['username']) || empty($data['message']) ) {
        $errors[] = 'No Value entered';
    }
 
    if (empty($errors)) {
        $messages = R::dispense('messages');
        $messages->user_id = $user_id;
        $messages->username = $user_name;
        $messages->message = $message;
        $messages->ip = $ip;        
        $messages->pubdate = date('d.m.Y H:i');
        R::store($messages);
        header("Location: ".$_SERVER["HTTP_REFERER"]); 
     
 
 
}else {
  $errors =  array_shift($errors);        
}     
 
 
}
 
$comm = R::getAll('SELECT * FROM messages');
 
     foreach ($comm as $key => $comment) {
 
     $comment = "<div class ='show'><p>". $comment['username'] . "</p>
      <p>". $comment['message'] . "</p>";
     $comm_ip = "<p>". $comment['ip'] ."</p></div>";        
    
}
 
$comments_info = array(          
          'message' => $comment,
          'ip' => $comm_ip ); 
 
   echo json_encode($comments_info); 
    exit; 
 
?>

Код script.js
$(document).ready(function(){
  
  $('.submit').on('click', function() {
   // e.preventDefault();
    var user_id = $('.userid').val();
    var username = $('.username').val();
    var message = $('.message').val();    
    var url = $('.comment_form').attr('action');
    
   //e.preventDefault();
    $.ajax({
      url: url,
      type: "POST",
      data: {
        "user_id": user_id,
        "username": username,
        "message": message,
        "submit_data": $(".submit").val()
      },
      dataType: 'json',
      cache: false,      
      success: function(data){
 
          //var response = JSON.parse(data);
          $('.message').html(data.message);
          $('.ip').html(data.ip);
          //$('.show').prepend(data.message + data.ip);
          //$('.show').append('<p>' + username + '</p><p>' + message + '</p>' + data.ip);        
          
        },
 
        error: function(){ 
          $('.username').val('');
          $('.message').val('');
        }
        
 
      });    
    });
  });

Код index.php
<?php 
error_reporting(-1);
require 'rb.php';
 
 R::setup('mysql:host=127.0.0.1; dbname=ajax_test', 'root', '');
 
 if (!R::testConnection()) 
 {
    exit('Не удалось соединиться с базой данных!');
 }
?>
 
 
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Комментарии</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
    <script src="script.js"></script>
</head>
<body>  
 
 
<div class="show">
<?php 
     $comm = R::getAll('SELECT * FROM messages');
 
     foreach ($comm as $key => $comment) {
?>
 
   <p><? echo $comment['username'];?></p>
   <p><? echo $comment['message'];?></p>
   <p class="ip"><? echo $comment['ip'];?></p>
 
<?php       
}
?>
</div>  
 
<form class="comment_form" action="send.php" method="POST">
<input type="hidden" name="user_id" class="userid" value="5">
<input type="text" name="username" class="username"><br>
<textarea name="message" cols="40" rows="10" class="message"></textarea><br>
<input type="button" name="submit_data" class="submit" value="Submit">
</form>
 
 
 
 
<noscript>JAVASCRIPT IS NOT WORKING ON YOUR BROWSER</noscript>
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 01.05.2019, 16:47
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Чего нужно - ввод в форму, передать и получить ответ в форму или чего?

preg_match("/[<>]/", $message); - а почему нельзя? Если не допускать html теги, то причем тут просто угловые скобки?

$message == '' - один пробел и уже не пусто, но тем не менее ничего ведь нет.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с выводом сообщений Visual Общие вопросы Javascript 0 01.02.2013 12:34
Проблема с выводом массива на консоль Vempel jQuery 1 06.08.2012 15:57
Проблема с выводом информации после запроса с помощью ajax Dimario AJAX и COMET 0 23.07.2011 17:08
Проблема с выводом скрипта на страницу Mike_S. Общие вопросы Javascript 8 14.06.2011 07:26
Проблема с выводом контента в топ-панели Slavk0 Общие вопросы Javascript 0 28.03.2011 11:39