2012-04-20 3 views
0

Мне нужно использовать AJAX для мгновенного сохранения комментариев пользователя в базе данных. Это поле комментариев.Записывать данные в базу данных с помощью AJAX

<div class="comment"> 
     <form action="comment.php"> 
     <textarea cols="35" name="comments"> Give us comment </textarea> 
     <input type="button" value="comment" onclick="ajaxFunction()"> 
     </form>     
</div> 

Это код PHP

<?php 

$link = mysql_connect("localhost","root",""); 
mysql_select_db("continental_tourism"); 

$comments = $_POST['comments']; 

if($comments == "") 
echo "Please type your comment"; 
else 
{ 
$query = "insert into comment(comment) values('$comments') "; 
mysql_query($query); 
} 
return; 
?> 

Мне нужно знать, как это должно быть изменено. Спасибо

+2

Я думаю, что смотреть 'ajaxFunction()' будет необходимо. Кроме того, если вы хотите, чтобы люди бросали вам таблицы, просто спросите. SQL-инъекция не должна быть такой простой. Пожалуйста, ознакомьтесь с подготовленными заявлениями. – Dan

+1

необходимо отправить данные в ajaxfunction() – Satya

+0

Вы можете включить код для ajaxFunction()? В общем, вы можете взглянуть на структуру, такую ​​как прототип или jQuery. –

ответ

4

Я бы chnage ваш HTML, как этот

<textarea cols="35" id="comments"> Give us comment </textarea> 
<input type="button" value="comment" id="btnSave" /> 

и сценарий

$(function(){ 
$("#btnSave").click(function(e){ 
    e.preventDefault(); 
    $.post("yourphpfile.php", { comments : $("#comments").val() } ,function(data){ 
    alert(data); 
    }); 
}); 
}); 

выше сценарий будет посылать запрос на Ajax yourphpfile.php со значением, присутствующим в текстовое поле с комментарием id. Затем, как только он вернет некоторые данные с серверной страницы. он просто предупреждает об этом (вы можете показать это в отдельном div, если хотите). Вы должны повторить ответ из вашего php-файла после сохранения данных в базе данных.

Как уже упоминалось выше, вы должны быть осторожны с SQL-инъекциями при сохранении данных, которые считываются из значения querystring. выполните правильную санитацию перед тем, как поместить ее в запрос. Извините, я не парень php. поэтому не уверен, как это сделать.

Не забудьте включить библиотеку jQuery на свою страницу.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script> 

Вы можете использовать консоль firebug для отладки вашей ошибки сценария, если вы столкнетесь с ней.

+0

И включает jQuery ... – jeroen

+0

@jeroen: Конечно. :) Я добавлю это к ответу. – Shyju

+0

Вы можете сделать что-то простое, например, запустить $ escaped_value = mysql_real_escape_string ($ _ POST ['comment']); чтобы избежать –

Смежные вопросы