Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.12.2016, 17:07
Аспирант
Отправить личное сообщение для LingVist Посмотреть профиль Найти все сообщения от LingVist
 
Регистрация: 21.09.2010
Сообщений: 39

Добавление комментов без перезагрузки
Доброго дня всем.

Суть в следующем - есть страница с комментариями, надо, чтобы они выводились без перезагрузки. Ничего не получилось. В БД данные добавляются, но на странице не появляются, только после перезагрузки. Я в JQuery и Ajax не силен, так что прошу помощи. Вот коды
Файл ajax.js
$(function() {
    $("#myBut").click(function(){
        var name = $("#name").val();
        var date = $("#date").val();
        var message = $("#message").val();
        var filter = $("#filter").val();
        $.ajax({
            type: "POST",
            url: "add.php",
            data: "&name=" + name + "&date=" + date + "&message=" + message + "&filter=" + filter,
			success: function(data){
                $("#portfolio_wrapper").append(data);
            }
        });
        return false;
});
	
});

Файл add.php
require_once 'db.php';

		$link = mysqli_connect($host, $user, $pass, $database) or die("Ошибка " . mysqli_error($link)); 
		mysqli_set_charset($link, "utf8");

		$name = trim(strip_tags($_POST["name"]));
		$date = date("j.n.Y");
		$message = trim(strip_tags($_POST["message"]));
		$filter = trim(strip_tags($_POST["filter"]));

		$query ="INSERT INTO comments VALUES(NULL, '$name','$date', '$message', '$filter')";

		$result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link));


Вот ссылка на саму страницу - http://vkohan.zzz.com.ua/comment.loc/
Ответить с цитированием
  #2 (permalink)  
Старый 13.12.2016, 20:29
Аспирант
Отправить личное сообщение для LingVist Посмотреть профиль Найти все сообщения от LingVist
 
Регистрация: 21.09.2010
Сообщений: 39

Сделал как Вы посоветовали. Теперь комменты добавляются, но не в конец или в начало, а вставляются во второй комментарий. И еще - если ни одного коммента нет, то они вообще не появляются, только после перезагрузки. Вот код файла JS
$(document).ready(function(){

    $("#myBut").click(function(){
        var name = $("#name").val();
        var date = $("#date").val();
        var message = $("#message").val();
        var filter = $("#filter").val();
        $.ajax({
            type: "POST",
            url: "add.php",
            data: "&name=" + name + "&date=" + date + "&message=" + message + "&filter=" + filter,
			success: function(){
                $("#portfolio_wrapper").append("<div class='portfolio-item " + filter + " isotope-item' style='position: absolute; left: 0px; top: 0px; transform: translate3d(0px, 158px, 0px); width: 460px;'><div class='portfolio_img'><p class='user'>Добавил: <span>" + name + "</span> Дата добавления: <span>" + date + "</span></p><hr><p>" + message+ "</p></div></div>");
            }
        });
        return false;
});
	
});
Ответить с цитированием
  #3 (permalink)  
Старый 13.12.2016, 21:14
Аспирант
Отправить личное сообщение для LingVist Посмотреть профиль Найти все сообщения от LingVist
 
Регистрация: 21.09.2010
Сообщений: 39

Так если бы я не изменил success, то выводились бы только переменные. Я вернул как было, посмотрите, что выводит сейчас
Ответить с цитированием
  #4 (permalink)  
Старый 14.12.2016, 11:04
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

strip_tags($_POST["message"]) - это зачем? Не strip_tags, а htmlspecialshars при выводе данных на страницу. А strip_tags($_POST["name"]) так это вообще... Добавлять комментарии по уму разрешают только регистрированным пользователям, а зарегистрировать в качестве имени теги, это вы уж на этапе регистрации должны отсевать.

То есть все что там написано по обработке входных данных полная лажа, и самое страшное она не исключает sql-инъекции. Читайте в разделе mysqli о подготовленных запросах и метках, и поступайте так, либо сами экранируйте входные данные.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AJAX отправка формы без перезагрузки страницы Igorsrt AJAX и COMET 3 30.05.2016 10:54
Отправка e-mail без перезагрузки страницы raffx AJAX и COMET 2 26.11.2013 16:13
Не работает скрипт при обновлении элемента без перезагрузки страницы Jex Events/DOM/Window 0 28.09.2012 16:43
Помогите с кодом добавления формы без перезагрузки страницы dlux66 Ваши сайты и скрипты 3 03.11.2011 12:41
как с помощью jquery отсылать без перезагрузки... serhanters jQuery 11 22.07.2011 21:17