Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: вывод комментариев.
 
 автор: liberty   (07.07.2013 в 08:59)   письмо автору
 
 

здравствуйте.
интересует как реализовать вывод окошка для ввода коментариев только, если комменты уже есть.
если комментов нет, то только вывести кнопку "Оставьте свой отзыв"
<div class="corner25">
<h5>Оставьте свой отзыв:</h5>
<div id='cerror'></div>

<form action="#" method="POST" enctype="multipart/form-data" name="addcom" id="addcom" onSubmit="return false" class="sendform">
Ваше имя <input class="comment_name" type="text" name="author" id="author">
<div class="corner20"><textarea name="text"></textarea></div>
<input name="id" type="hidden" value="<?php echo $id_university?>">
<input type='hidden' name='advertisment' value='<?php echo $myrow3['title']; ?>'>
<input class="button-small" name="button" type="button" value='Отправить' onclick="doLoad(document.getElementById('addcom'))">
</form>
<div id='resultid'></div>
<!--вывод комментариев -->

<?php
$result 
mysql_query("SELECT * FROM comment WHERE post='" mysql_real_escape_string($id_university) . "' ORDER BY date DESC, id"$db);
if(
mysql_num_rows($result) > 0)
{
$comment mysql_fetch_array($result);
do
{
$text $comment["text"];
$author $comment["author"];
$date $comment["date"];

printf("<div class='comment-content2'>
       <h6>%s</h6>
       <p>%s</p>
       <p>%s</p>
       </div> 
       "
,$author,$date,$text);
}
while (
$comment mysql_fetch_array($result));
}
?>    
</div>

  Ответить  
 
 автор: confirm   (07.07.2013 в 09:16)   письмо автору
 
   для: liberty   (07.07.2013 в 08:59)
 

Вы безнадежны, слов нет, вы даже учится не хотите. Вам показывали как и запросы пишутся, все равно пишете что-то невообразимое.

  Ответить  
 
 автор: liberty   (07.07.2013 в 09:20)   письмо автору
 
   для: confirm   (07.07.2013 в 09:16)
 

но ведь работает! )))

  Ответить  
 
 автор: confirm   (07.07.2013 в 09:23)   письмо автору
 
   для: liberty   (07.07.2013 в 09:20)
 

Ну так и голым в ресторан ходить можно, но только это неудобно и не прилично.

  Ответить  
 
 автор: liberty   (07.07.2013 в 09:30)   письмо автору
 
   для: confirm   (07.07.2013 в 09:23)
 

чем конкретно и почему вам не нравится этот запрос?

  Ответить  
 
 автор: confirm   (07.07.2013 в 09:31)   письмо автору
 
   для: liberty   (07.07.2013 в 09:30)
 

Я вам уже об это рассказывал, вам это уже другие показывали и говорили, и не только в этом разделе. Смысл еще раз повторять?

  Ответить  
 
 автор: liberty   (07.07.2013 в 09:38)   письмо автору
 
   для: confirm   (07.07.2013 в 09:31)
 

ну ладно забудем про запрос тогда.
на основной вопрос ответите?

  Ответить  
 
 автор: confirm   (07.07.2013 в 10:07)   письмо автору
 
   для: liberty   (07.07.2013 в 09:38)
 

Нет не отвечу, потому как не понимаю почему форма перед запросом, если она должна быть по условию этого запроса.
А если она должна отвечать на условие не этого запроса, а другого, то где предыдущий запрос.

Желание ваше понятно, но не понятно к чему вы его хотите привязать, а пояснений вы не даете.

  Ответить  
 
 автор: liberty   (07.07.2013 в 10:19)   письмо автору
 
   для: confirm   (07.07.2013 в 10:07)
 

пояснения.
тут выводим окошко для ввода коммента.
<? php<div class="corner25"
<
h5>Оставьте свой отзыв:</h5
<
div id='cerror'></div

<
form action="#" method="POST" enctype="multipart/form-data" name="addcom" id="addcom" onSubmit="return false" class="sendform"
Ваше имя <input class="comment_name" type="text" name="author" id="author"
<
div class="corner20"><textarea name="text"></textarea></div
<
input name="id" type="hidden" value="<?php echo $id_university; ?>"
<
input type='hidden' name='advertisment' value='<?php echo $myrow3['title']; ?>'
<
input class="button-small" name="button" type="button" value='Отправить' onclick="doLoad(document.getElementById('addcom'))"
</
form
<
div id='resultid'></div>?> 

а тут вывожу уже сами комменты
<div id='resultid'></div> 
<?php 
$result 
mysql_query("SELECT * FROM comment WHERE post='" mysql_real_escape_string($id_university) . "' ORDER BY date DESC, id"$db); 
if(
mysql_num_rows($result) > 0

$comment mysql_fetch_array($result); 
do 

$text $comment["text"]; 
$author $comment["author"]; 
$date $comment["date"]; 

printf("<div class='comment-content2'> 
       <h6>%s</h6> 
       <p>%s</p> 
       <p>%s</p> 
       </div>  
       "
,$author,$date,$text); 

while (
$comment mysql_fetch_array($result)); 

?>     
</div>

вопрос.
как изменить код, чтобы в случае отсутствия комментов не выводилось окошко, а только кнопка "Оставить комментарии".

  Ответить  
 
 автор: confirm   (07.07.2013 в 10:37)   письмо автору
 
   для: liberty   (07.07.2013 в 10:19)
 

Значит я вам практически уже ответил на вопрос - как может быть форма впереди запроса по условию данных которого она должна выводиться?
Видимо надо проверить в этом запросе существование того, что определяет наличие формы, а уж только по результатам проверки выводить или нет форму.

  Ответить  
 
 автор: zorg84   (07.07.2013 в 14:18)   письмо автору
 
   для: liberty   (07.07.2013 в 10:19)
 

       <div id='resultid'></div>  
<?php  
$result 
= mysql_query("SELECT * FROM comment WHERE post='" . mysql_real_escape_string($id_university) . "' ORDER BY date DESC, id", $db);  
if(mysql_num_rows($result) > 0)  
{

while ($comment = mysql_fetch_assoc($result))
{
  
$text 
= $comment["text"];  
$author 
= $comment["author"];  
$date 
= $comment["date"];  

printf
("<div class='comment-content2'>  
       <h6>%s</h6>  
       <p>%s</p>  
       <p>%s</p>  
       </div>   
       "
,$author,$date,$text);  
}  
//////////////////////
?>

<div class="corner25">  
<h5>Оставьте свой отзыв:</h5>  
<div id='cerror'></div>  

<form action="#" method="POST" enctype="multipart/form-data" name="addcom" id="addcom" onSubmit="return false" class="sendform">  
Ваше имя <input class="comment_name" type="text" name="author" id="author">  
<div class="corner20"><textarea name="text"></textarea></div>  
<input name="id" type="hidden" value="<?php echo $id_university; ?>">  
<input type='hidden' name='advertisment' value='<?php echo $myrow3['title']; ?>'>  
<input class="button-small" name="button" type="button" value='Отправить' onclick="doLoad(document.getElementById('addcom'))">  
</form>  
<div id='resultid'></div>
</div>
<?php

////////////////////


}
else{echo
'buton';}



?>

  Ответить  
 
 автор: liberty   (07.07.2013 в 18:23)   письмо автору
 
   для: zorg84   (07.07.2013 в 14:18)
 

понятно.
а как вывести саму кнопку теперь?
ее надо в форму загонять с тегом name="button" type="button"?

  Ответить  
 
 автор: liberty   (07.07.2013 в 18:30)   письмо автору
 
   для: liberty   (07.07.2013 в 18:23)
 

или просто ссылку "оставить отзыв"
куда эта ссылка должна ввести, как это реализовать?

  Ответить  
 
 автор: zorg84   (07.07.2013 в 21:12)   письмо автору
 
   для: liberty   (07.07.2013 в 18:30)
 

Обьясни что ты хочешь после нажатия кнопки ,чтобы форма появилась для коментов? тогда смысл ее прятать? Если хочешь чтобы форма выводилась на новой странице тогда ссылкой

  Ответить  
 
 автор: liberty   (07.07.2013 в 22:01)   письмо автору
 
   для: zorg84   (07.07.2013 в 21:12)
 

я хочу чтобы формы не было когда нет комментариев.

если комменты уже есть то и форма есть.

а если нет комментов, то есть только кнопка (ссылка) которая открывает эту форму

  Ответить  
 
 автор: zorg84   (07.07.2013 в 23:26)   письмо автору
 
   для: liberty   (07.07.2013 в 22:01)
 

В else добавить форму , в css добавить display:none; для формы чтобы форма не отображалась .при клике по кнопке срабатывает функция javascrit которая меняет значение display. это примитивно но будет работать
[

else {

<div class="corner25">   
<h5>Оставьте свой отзыв:</h5>   
<div id='cerror'></div>   

<form action="#" method="POST" enctype="multipart/form-data" name="addcom" id="addcom" onSubmit="return false" class="sendform">   
Ваше имя <input class="comment_name" type="text" name="author" id="author">   
<div class="corner20"><textarea name="text"></textarea></div>   
<input name="id" type="hidden" value="<?php echo $id_university; ?>">   
<input type='hidden' name='advertisment' value='<?php echo $myrow3['title']; ?>'>   
<input class="button-small" name="button" type="button" value='Отправить' onclick="doLoad(document.getElementById('addcom'))">   
</form>   
<div id='resultid'></div> 
</div>

<div onclick="form()">  кнопка </div>




}





  Ответить  
 
 автор: liberty   (07.07.2013 в 23:48)   письмо автору
 
   для: zorg84   (07.07.2013 в 23:26)
 

зачем в else добавлять форму, если ее как раз там и не надо выводить.
только кнопку.

  Ответить  
 
 автор: zorg84   (08.07.2013 в 00:10)   письмо автору
 
   для: liberty   (07.07.2013 в 23:48)
 

для того чтобы если нет записей в базе данных при клике по кнопке форма появилась

  Ответить  
 
 автор: liberty   (08.07.2013 в 02:44)   письмо автору
 
   для: zorg84   (08.07.2013 в 00:10)
 

пару вопросов

как прописать "в css добавить display:none; !"

и что тут
<div onclick="form()">  кнопка </div> 


просто кнопка?

  Ответить  
 
 автор: confirm   (08.07.2013 в 07:43)   письмо автору
 
   для: zorg84   (07.07.2013 в 14:18)
 

То есть по вашему mysql_real_escape_string($id_university) и
$text = $comment["text"];
$author = $comment["author"];
$date = $comment["date"];
printf("<div class='comment-content2'><h6>%s</h6><p>%s</p><p>%s</p></div>",$author,$date,$text);

это нормально?

  Ответить  
 
 автор: liberty   (08.07.2013 в 07:55)   письмо автору
 
   для: confirm   (08.07.2013 в 07:43)
 

а что там не так?

  Ответить  
 
 автор: confirm   (08.07.2013 в 08:07)   письмо автору
 
   для: liberty   (08.07.2013 в 07:55)
 

Что это такое: enctype="multipart/form-data" ?
Это зачем: name="addcom" и name="button"?
Почему: name="text"?
Это для чего: onSubmit="return false" и onclick="doLoad(document.getElementById('addcom'))"?

mysql_real_escape_string($id_university) - целочисленные переменные нужно к этому типу и приводить (Int)$id_university, при чем, если эта переменная получена извне, например, как POST данные, то if($id_university = (int)$_POST['$id_university']) { и далее обработка запроса, так как у нормальных пацанов id равного 0 нет. А mysql_real_escape_string() здесь с боку припеку.

mysql_fetch_array() - это плохо, так как вы тянете лишние данные.

Переписывать трижды переменные ради того, чтобы задействовать printf(), это либо не понимать когда ею удобно пользоваться, либо вообще не понимать, что такое вывод.

Данные на страницу нужно выводить обработанные htmlspecialchars().

  Ответить  
 
 автор: liberty   (08.07.2013 в 14:27)   письмо автору
 
   для: confirm   (08.07.2013 в 08:07)
 

какой был бы ваш вариант?

  Ответить  
 
 автор: confirm   (08.07.2013 в 14:32)   письмо автору
 
   для: liberty   (08.07.2013 в 14:27)
 

У меня нет вариантов, есть учебники и руководства описывающие элементы html, их атрибуты. Использовать нужно те, которые необходимы для решения поставленной задачи, а не по принципу "кашу маслом не испортишь".
Нужно знать, что такое события элементов, как они возникают и что делают, а не писать лишнего.
Нужно знать об элементарных правилах безопасности, а не вываливать на страницы так как есть.
Все это описано, нужно лишь изучать.
Вы же скорее всего копируете хлам не известно из каких источников, даже не задумываясь о том, что это такое и зачем.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования