Данные со страницы при помощи jQuery ($post()) отправляются файлу обработчику, он записывает данные в базу данных и в результате выдает сообщение об успешном или неуспешном окончании операции (echo("...")). Страница получает текст от обработчика. Но вот загвоздка - если в этот текст добавить теги, то страница получив их от обработчика не обрабатывает а печатает как текст. Так и должно быть? Как это исправить?
Спустя 6 минут, 30 секунд (19.07.2010 - 19:39) Lenarfate написал(а):
- советую отправлять в формате xml
- покажите код
Спустя 21 минута, 32 секунды (19.07.2010 - 20:01) Userguest написал(а):
<script type="text/javascript">
$(document).ready(function(){
$("#block button").click(function(){
$('#spinner').css('visibility','visible');
$('#visual_message').css('visibility','hidden');
var v1 = $('#sel option:selected').val();
var v2 = $('#v2').val();
var v3 = $('#v3').val();
$.post( "obr.php", {
v1:v1,
v2:v2,
v3:v3 },function(data){
$('#spinner').css('visibility','hidden');
$('#visual_message').css('visibility','visible');
$("#visual_message").text(data)});
});
});
</script>
Html код:
<form> ... </form>
<div id="block" class="align_center">
<button class="but_class">Сохранить</button>
<div id="spinner" style="visibility:hidden"></div><span></span>
</div>
<div id="message_visual" style="visibility:hidden"><span></span></div>
Код файла обработчика:
<?php
if(isset($_POST["v1"])){$v1 = $_POST["v1"];} else {unset($v1);}
if(preg_match("|^[\d]+$|", $_POST["v2"])){$v2 = $_POST["v2"];} else {unset($v2);}
if(preg_match("|^[\d]+$|", $_POST["v3"])){$v3 = $_POST["v3"];} else {unset($v3);}
if (isset($v1) && isset($v2) && isset($v3))
{
$result_1 = mysql_query ("UPDATE table_1 SET field_1='$v1' WHERE id=1", $db);
$result_2 = mysql_query ("UPDATE table_2
SET
field_1='$v2',
field_2='$v3',
WHERE id=1", $db);
if ($result_1 == true) {echo ("Операция 1 завершена успешно");}
else {echo ("Операция 1 завершилась неудачей");};
if ($result_2 == true) {echo ("Операция 2 завершена успешно");}
else {echo ("Операция 2 завершилась неудачей");};
}
else {echo("Некорректный ввод данных. Невозможно выполнить операцию.");}
?>
Спустя 3 минуты, 24 секунды (19.07.2010 - 20:04) Userguest написал(а):
Опечатка.
Было:
<div id="message_visual" style="visibility:hidden"><span></span></div>
Должно быть:
<div id="visual_message" style="visibility:hidden"><span></span></div>
Т.е. если к примеру написать так:
то так и выводит.
Было:
<div id="message_visual" style="visibility:hidden"><span></span></div>
Должно быть:
<div id="visual_message" style="visibility:hidden"><span></span></div>
Т.е. если к примеру написать так:
if ($result_1 == true) {echo ("Операция 1 завершена успешно<br>");}
то так и выводит.
Спустя 2 минуты, 45 секунд (19.07.2010 - 20:07) Lenarfate написал(а):
зачем это?
Цитата |
if(preg_match("|^[\d]+$|", $_POST["v2"])){$v2 = $_POST["v2"];} else {unset($v2);} if(preg_match("|^[\d]+$|", $_POST["v3"])){$v3 = $_POST["v3"];} else {unset($v3);} |
да и вообще это в javascript тему, а не сюда))
Спустя 1 минута, 59 секунд (19.07.2010 - 20:09) Lenarfate написал(а):
Цитата |
Т.е. если к примеру написать так: if ($result_1 == true) {echo ("Операция 1 завершена успешно<br>");} то так и выводит. |
а у меня нормально выводит
Спустя 4 минуты, 24 секунды (19.07.2010 - 20:13) Userguest написал(а):
Выводом данных ведь php занимается. Зачем в javascript тему?
На ваш вопрос зачем это.
Проверка на наличие только чисел и хотя бы одного знака.
else {unset($v2); - пока не успел убрать, оно здесь не нужно.
Если вы об этом.
Пока писал вы отправили новое сообщение.
Да, вроде должно и у меня выводить. Надеялся, что подскажете в какую сторону смотреть.
Буду копать.
На ваш вопрос зачем это.
Проверка на наличие только чисел и хотя бы одного знака.
else {unset($v2); - пока не успел убрать, оно здесь не нужно.
Если вы об этом.
Пока писал вы отправили новое сообщение.
Да, вроде должно и у меня выводить. Надеялся, что подскажете в какую сторону смотреть.
Буду копать.
Спустя 41 минута, 56 секунд (19.07.2010 - 20:55) dr_Lev написал(а):
печатает теги, потому что полученный текст вставляется через функцию text()
Цитата |
$("#visual_message").text(data)}); |
, а нужно через html()
$("#visual_message").html(data)});
Спустя 1 час, 6 минут, 26 секунд (19.07.2010 - 22:02) Userguest написал(а):
Большое спасибо.
Именно то, что нужно.
Именно то, что нужно.