|
|
|
| Всем привет! Купил книгу PHP на примерах 2-издание, тема Отправка данный методам POSTrnrnB результате не выходит ни чего! Вылажу свой ко, посмотрите пожалуйста, может где то допустил ошибку?
Заранее спасибо!
<script type="text/javascript">
$(document).ready(function () {
$("#id_submit").bind("click", function() {
if ($.trim($("#id_name").val()) ==="")
{
alert('Поле для атора не было заполненно');
return false;
}
if ($.trim($("#id_comment").val()) ==="")
{
alert('Поле для комментария осталось не заполненным');
return false;
}
$("#id_submit").attr("disabled", "disabled");
$("#info").load("addcomm.php",
{name: $("#id_name").val(),
comment: $("#id_comment").val()},
$("#id_submit").attr("disabled", ""));
})
});
</script>
|
<div id='info'>
<?php
require_once("addcomm.php");
?>
</div>
<div id="form">
<span class="fld">
<p><input id="id_name" type="text" /></p>
</span>
<span class="fld">
<textarea id="id_comment" rows="5" type="text" ></textarea>
</span>
<span class="fld">
<input id="id_submit" type="submit" value="Добавить" />
</span>
</div>
|
<?php
include("lesson/config.ini.php");
include("lesson/function.ini.php");
if (!empty($_POST)){
$error = array();
if (empty($_POST['name']))
{
$error[] = "<p>Нет Имени</p>";
}
if (empty($_POST['comment']))
{
$error[] = "<p>Нет комментария</p>";
}
if (empty($error))
//if (!get_magic_quotes_gpc())
{
$_POST['name'] = ($_POST['name']);
$_POST['comment'] = ($_POST['comment']);
}
$query = "INSERT INTO `lesson_comm` VALUES(NULL,
'{$_POST['name']}',
'{$_POST['comment']}')";
if (!mysql_query($query))
{
$error[] = "<p>Ошибка отпрвки сообщения</p>";
}
}
$comment = "SELECT * FROM `lesson_com`";
$query = mysql_query($comment);
while($row = mysql_fetch_object($query)){
echo $row->comment;
echo $row->name;
}
?>
|
| |
|
|
|
|
|
|
|
для: Атдрон
(12.06.2013 в 13:00)
| | Во-первых метод .load() по умолчанию выполняется как GET-запрос, во-вторых у вас не обрабатывается ответ, а в третьих, метод .bind() считается устаревшим, и последней версией jQuery не поддерживается, и если у вас она, то вообще до вызова не дойдет. | |
|
|
|
|
|
|
|
для: confirm
(12.06.2013 в 15:58)
| | А какая альтернатива bind()? Ну в книге 2012 года именно так все написано!
А с помощью $_GET я могу в таблицу записать значение поля input
например <input type="text" id="id_comment"/>??? | |
|
|
|
|
|
|
|
для: Атдрон
(12.06.2013 в 16:03)
| | Ну я бы не сказал, что альтернатива, просто в последней версии новый метод .on() заменяет и .bind() и другие. И методов асинхронных запросов много, и метод именно для POST есть.
С помощью любого метода передачи асинхронного запроса можно во что-то вставить ответ (если он конечно корректный), но его же надо обрабатывать, чего вы не делаете. Посмотрите по ссылках примеры.
PS. Ваш код форматирован ужасно и лишнего много, не сразу в каше вашей разобрался - ваш запрос выполнится как POST, но вот обработки все равно нет. | |
|
|
|
|
|
|
|
для: confirm
(12.06.2013 в 16:16)
| | confirm!
Я в ajax query вообще не юзал, если вам не сложно сделайте изменения в коде, а то я сам буду долго догонять! Заранее спасибо Вам! | |
|
|
|
|
|
|
|
для: Атдрон
(12.06.2013 в 16:29)
| | Какие изменения? Если я бы я изменял, я бы выкинул из вашего кода 80%, так как много лишнего, а по современным меркам бесполезного. Ну и второе, что вам надо из кода совсем не видно.
Не надо разбираться в .ajax() query, используйте его упрощенные методы, для POST запросов, это $.post(). Метод .load() имеет свою специфику, и применяя его, нужно это знать - http://jquery-docs.ru/ajax/load/. | |
|
|
|
|
|
|
|
для: confirm
(12.06.2013 в 16:34)
| | Ну в таком случаи если 80п выкинуть то получается что данное приобретение было совсем бесполезно http://www.ozon.ru/context/detail/id/7353555/ Мне больше сказать не чего, разве оставить суперский отзыв в магазине! А Вам спасибо большое что ответили на мою просьбу! | |
|
|
|
|
|
|
|
для: Атдрон
(12.06.2013 в 16:55)
| | Ну если это так в книге написано, то я вам сожалению, так как это не код, а полный бред, то есть приобретение бесполезное. )
Ну вот зачем это писать, да еще так ужасно - if ($.trim($("#id_comment").val()) ==="") , повторяясь?
Конечно, если вы напишите свой сайт, и стоит его только выставить, и у вас будет сразу миллион посетителей, и этот миллион со всякими браузерами, от раритетов до современных, то может и нужно такое писать. Но писать ==="" для строковых значений, это....
Учитывая, что проверка на клиенте, это чистый сервис, то вместо всего этого лишнего кода, лучше добавить атрибут required тем полям формы, которые должны быть обязательно заполнены. Хватит идти на поводу пользователей держащихся за рухлядь.
Ну и другое в вашем коде мягко сказать далеко даже от оценки удовлетворительно. | |
|
|
|
|
|
|
|
для: confirm
(12.06.2013 в 17:04)
| | А Вам удивляюсь! Я все это с книги скопировал! О каком маем коде Вы говорите?
Вы читали данное издание? Я благодаря этой книге здесь оказался!
Еще раз повторяю, весь код взят с книги в том числе название блоков div
Так что можно сказать что в книге полный бардак и не неразбериха, я уже пожалел что купил ее | |
|
|
|
|
|
|
|
для: Атдрон
(12.06.2013 в 17:09)
| | Нет, я не читаю сомнительных изданий, а библиотеки типа jQuery, их работу, изучаю по руководствам авторов, для меня этого вполне достаточно. | |
|
|
|
|
|
|
|
для: confirm
(12.06.2013 в 17:20)
| | Понятно! | |
|
|
|
|
|
|
|
для: Атдрон
(12.06.2013 в 17:09)
| | А чему вы удивляетесь?
Достойной литературы по программированию от русских авторов не существует в принципе. | |
|
|
|
|
|
|
|
для: DangerBay
(12.06.2013 в 17:22)
| | Программирование у вас должно "сидеть" в голове - это ваше мышление, а руководство по языку - это описание его возможностей. Достаточно соединить мышление с описанием, и уже можно что-то писать.
Хотя хорошие книги, это всегда хорошо, и они есть, вы же не все читали, а то что вам попалось не лучшее, еще не говорит о том, что все такое. | |
|
|
|