Создать ответ 
Показать скрытые данные по клику мышки
Автор Сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #1
Показать скрытые данные по клику мышки
Данная тема создана для того, чтобы не продолжать обсуждение возникшей проблемы у пользователя Алексей в комментариях к теме Показать скрытые данные по клику мышки.

(30.11.2014 15:56:29)Алексей писал(а):Будьте добры, поясните, хотя и не обязаны.
Создаю базу данных, далее извлекаю данные, какие параметры изменить в show_data.php (логин, пароль, имя, id), чтобы работал скрипт, как у вас на сайте.
<?php
$db=mysqli_connect("localhost","Логин","Пароль","Имя_БД");
$res=mysqli_fetch_array(mysqli_query($db,"SELECT data FROM table WHERE id=".(int)$_POST["id"].""));
echo $res[0];
?>
Просьба пояснить такие простые вещи, если можно на примере...
Заранее благодарен.



(01.12.2014 17:16:36)Алексей писал(а):База данных и таблица созданы, имя таблицы и столбца есть, но где-то ошибка при заполнении таблицы
<?php
$db=mysqli_connect("localhost","admin","12345","database");
$res=mysqli_fetch_array(mysqli_query($db,"SELECT phone FROM contacts WHERE id=".(int)$_POST["id"].""));
echo $res[0];
?>
Сообщение в браузере:
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\WebServers\home\site.ru\www\data.php on line 3
PHP только начинаю изучать и с базой данной не работал, но базу и таблицу создал без проблем, как и пользователя, но что сделал неправильно? Поясните немного подробнее, какие параметры в таблице поменять на примере скрытия 1 телефона с id=22, так как я пока не все параметры знаю.
Заранее благодарен!
01.12.2014 21:18:10
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #2
RE: Показать скрытые данные по клику мышки
Почему-то у Вас не извлекаются данные из БД. Возможно, Вы пытаетесь получить данные по несуществующему значению столбца id. Например, у Вас заполнено всего 10 строк (до id=10), а Вы пытаетесь извлечь строку с id=22.

Не думал, что с БД могут возникнуть трудности... Не могли бы Вы сделать скриншот структуры и содержимого таблицы contacts?
01.12.2014 21:26:18
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #3
RE: Показать скрытые данные по клику мышки
(01.12.2014 21:26:18)Admin писал(а):  Почему-то у Вас не извлекаются данные из БД. Возможно, Вы пытаетесь получить данные по несуществующему значению столбца id. Например, у Вас заполнено всего 10 строк (до id=10), а Вы пытаетесь извлечь строку с id=22.

Не думал, что с БД могут возникнуть трудности... Не могли бы Вы сделать скриншот структуры и содержимого таблицы contacts?


Доброе время суток,
содержимое show_data.php:
<?php
$db=mysqli_connect("localhost", "contacts_id");
$res=mysqli_fetch_array(mysqli_query($db,"SELECT phone FROM data WHERE id=1".(int)$_POST["id"].""));
echo $res[0];
?>
html:
<p>
Телефон: +7<span class="phone" id="1"><u>Показать.</u></span>
</p>
Скриншоты обзора и структуры:
[Изображение: tid_307_view.png]

[Изображение: tid_307_structure.png]
(Последний раз сообщение было отредактировано 02.12.2014 в 15:43:02, отредактировал пользователь ale10ey.)
02.12.2014 15:32:34
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #4
RE: Показать скрытые данные по клику мышки
Зачем в строчку:
$res=mysqli_fetch_array(mysqli_query($db,"SELECT phone FROM data WHERE id=1".(int)$_POST["id"].""));
Вы добавили единицу (1)?

Удалите данную единичку.

Для проверки можно сделать так:
$res=mysqli_fetch_array(mysqli_query($db,"SELECT phone FROM data WHERE id=1"));
и обратиться через браузер к файлу show_data.php. Должно выдать на экран значение поля phone.
02.12.2014 19:44:36
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #5
RE: Показать скрытые данные по клику мышки
(02.12.2014 19:44:36)Admin писал(а):  Зачем в строчку:
$res=mysqli_fetch_array(mysqli_query($db,"SELECT phone FROM data WHERE id=1".(int)$_POST["id"].""));
Вы добавили единицу (1)?

Удалите данную единичку.

Для проверки можно сделать так:
$res=mysqli_fetch_array(mysqli_query($db,"SELECT phone FROM data WHERE id=1"));
и обратиться через браузер к файлу show_data.php. Должно выдать на экран значение поля phone.

Доброе время суток,
Верно, когда обращаюсь файлу show_data.php через браузер, то получаю номер телефона, как и в таблице, но не работает, для строки:
<p>Телефон: +7<span class="phone" id="1">Показать.</span></p>, когда кликаю
чтобы показать телефон.
На странице, html и javascript code, как у вас на сайте, но не работает.
Так как знаний в PHP мало, то теряюсь в догадках, где ошибка.
За проверку в браузере, спасибо.

(03.12.2014 12:54:28)ale10ey писал(а):  
(02.12.2014 19:44:36)Admin писал(а):  Зачем в строчку:
$res=mysqli_fetch_array(mysqli_query($db,"SELECT phone FROM data WHERE id=1".(int)$_POST["id"].""));
Вы добавили единицу (1)?

Удалите данную единичку.

Для проверки можно сделать так:
$res=mysqli_fetch_array(mysqli_query($db,"SELECT phone FROM data WHERE id=1"));
и обратиться через браузер к файлу show_data.php. Должно выдать на экран значение поля phone.

Доброе время суток,
Верно, когда обращаюсь файлу show_data.php через браузер, то получаю номер телефона, как и в таблице, но не работает, для строки:
<p>Телефон: +7<span class="phone" id="1">Показать.</span></p>, когда кликаю
чтобы показать телефон.
На странице, html и javascript code, как у вас на сайте, но не работает.
Так как знаний в PHP мало, то теряюсь в догадках, где ошибка.
За проверку в браузере, спасибо.

Спасибо за терпение, проблема решена корректированием пути расположения
<script type="text/javascript"
src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>.
Я ошибся в 1 букве при написании пути.
Спасибо еще раз, Алексей.
(Последний раз сообщение было отредактировано 03.12.2014 в 13:36:32, отредактировал пользователь ale10ey.)
03.12.2014 12:54:28
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #6
RE: Показать скрытые данные по клику мышки
(03.12.2014 12:54:28)ale10ey писал(а):  
(02.12.2014 19:44:36)Admin писал(а):  Зачем в строчку:
$res=mysqli_fetch_array(mysqli_query($db,"SELECT phone FROM data WHERE id=1".(int)$_POST["id"].""));
Вы добавили единицу (1)?

Удалите данную единичку.

Для проверки можно сделать так:
$res=mysqli_fetch_array(mysqli_query($db,"SELECT phone FROM data WHERE id=1"));
и обратиться через браузер к файлу show_data.php. Должно выдать на экран значение поля phone.

Доброе время суток,
Верно, когда обращаюсь файлу show_data.php через браузер, то получаю номер телефона, как и в таблице, но не работает, для строки:
<p>Телефон: +7<span class="phone" id="1">Показать.</span></p>, когда кликаю
чтобы показать телефон.
На странице, html и javascript code, как у вас на сайте, но не работает.
Так как знаний в PHP мало, то теряюсь в догадках, где ошибка.
За проверку в браузере, спасибо.

Уважаемый администратор,
для одного контакта (телефона) на странице все работает без проблем, но как
сделать, чтобы скрыть и по клику открыть еще 1 контакт, например данные почты.
html:
<p>
Телефон: +7<span class="phone" id="2"><input type="submit" value="Показать" /></span>
</p>
<p>
E-mail: <span class="phone" id="3"><a href="#">Показать</a></span>
</p>
showdata.php:
<?php
$db=mysqli_connect("localhost","acad","pswd","contacts_id");
$res=mysqli_fetch_array(mysqli_query($db,"SELECT phone FROM data WHERE id=".(int)$_POST["id"].""));
echo $res[0];
?>
Скриншоты базы:
1. Обзор
[Изображение: tid_307_review.png]

2.Структура
[Изображение: tid_307_structure2.png]

Так у меня показывается телефон по клику, так как переменная SELECT обращается к телефону и данные берет из базы, а что нужно прописать, чтобы и Email появлялся по клику.
У вас реализовано для 3 телефонов и работает нормально, где ошибка или нужно прописать в showdata.php правило и для Email.
Заранее благодарен.
03.12.2014 16:13:13
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #7
RE: Показать скрытые данные по клику мышки
Тут все зависит конкретно только от того, как это должно выглядеть в конечном итоге.
Если Вам необходимо, чтобы по клику сразу показывало, например, телефон, почту и т.д. (все что имеется в БД по данному id), то это сделать немного проще.
Если же Вам надо сделать так, чтобы по клику показывало телефон, по второму - почту, по третьему - еще что-то, то тут будет немного сложнее, и нужно будет делать несколько проверок и запросов.
04.12.2014 21:42:42
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #8
RE: Показать скрытые данные по клику мышки
(04.12.2014 21:42:42)Admin писал(а):  Тут все зависит конкретно только от того, как это должно выглядеть в конечном итоге.
Если Вам необходимо, чтобы по клику сразу показывало, например, телефон, почту и т.д. (все что имеется в БД по данному id), то это сделать немного проще.
Если же Вам надо сделать так, чтобы по клику показывало телефон, по второму - почту, по третьему - еще что-то, то тут будет немного сложнее, и нужно будет делать несколько проверок и запросов.

В том то и дело, как по клику сразу показывать телефон, почту по данному id я знаю, а вот как сделать, чтобы по клику показывать телефон, по второму – почту не хватает знаний, поэтому и интересовался, так как хотел скрыть телефон и почту на сайте, да и интересно, как это реализуется...
05.12.2014 12:32:46
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #9
RE: Показать скрытые данные по клику мышки
Например, можно сделать так:
Код:
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){
$(".phone>*").click(function(){
    id_elem=$(this).parent().attr("id");
    jQuery.post("show_data.php",{id:id_elem,type:"phone"},show_phone);
});
function show_phone(data){
    $("#"+id_elem+".phone").fadeOut(500, function(){ $(this).html(data).fadeIn(500); });
}


$(".mails>*").click(function(){
    id_elem=$(this).parent().attr("id");
    jQuery.post("show_data.php",{id:id_elem,type:"mails"},show_mails);
});
function show_mails(data){
    $("#"+id_elem+".mails").fadeOut(500, function(){ $(this).html(data).fadeIn(500); });
}
});
</script>

<p>
Телефон: +7<span class="phone" id="11"><input type="submit" value="Показать"></span>
Почта: <span class="mails" id="11"><input type="submit" value="Показать"></span>
</p>
<p>
Телефон: +7<span class="phone" id="22"><u>Показать.</u></span>
Почта: <span class="mails" id="22"><u>Показать.</u></span>
</p>
<p>
Телефон: +7<span class="phone" id="33"><img src="image/show_data.png" alt=""></span>
Почта: <span class="mails" id="33"><img src="image/show_data.png" alt=""></span>
</p>


Файл show_data.php:
PHP код:
<?php
$db
=mysqli_connect("localhost","acad","pswd","contacts_id");
if (
$_POST["type"]=="phone"$res=mysqli_fetch_array(mysqli_query($db,"SELECT phone FROM data WHERE id=".(int)$_POST["id"].""));
if (
$_POST["type"]=="mails"$res=mysqli_fetch_array(mysqli_query($db,"SELECT email FROM data WHERE id=".(int)$_POST["id"].""));
echo 
$res[0];
?>
05.12.2014 23:10:07
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #10
RE: Показать скрытые данные по клику мышки
(05.12.2014 23:10:07)Admin писал(а):  Например, можно сделать так:
Код:
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){
$(".phone>*").click(function(){
    id_elem=$(this).parent().attr("id");
    jQuery.post("show_data.php",{id:id_elem,type:"phone"},show_phone);
});
function show_phone(data){
    $("#"+id_elem+".phone").fadeOut(500, function(){ $(this).html(data).fadeIn(500); });
}


$(".mails>*").click(function(){
    id_elem=$(this).parent().attr("id");
    jQuery.post("show_data.php",{id:id_elem,type:"mails"},show_mails);
});
function show_mails(data){
    $("#"+id_elem+".mails").fadeOut(500, function(){ $(this).html(data).fadeIn(500); });
}
});
</script>

<p>
Телефон: +7<span class="phone" id="11"><input type="submit" value="Показать"></span>
Почта: <span class="mails" id="11"><input type="submit" value="Показать"></span>
</p>
<p>
Телефон: +7<span class="phone" id="22"><u>Показать.</u></span>
Почта: <span class="mails" id="22"><u>Показать.</u></span>
</p>
<p>
Телефон: +7<span class="phone" id="33"><img src="image/show_data.png" alt=""></span>
Почта: <span class="mails" id="33"><img src="image/show_data.png" alt=""></span>
</p>


Файл show_data.php:
PHP код:
<?php
$db
=mysqli_connect("localhost","acad","pswd","contacts_id");
if (
$_POST["type"]=="phone"$res=mysqli_fetch_array(mysqli_query($db,"SELECT phone FROM data WHERE id=".(int)$_POST["id"].""));
if (
$_POST["type"]=="mails"$res=mysqli_fetch_array(mysqli_query($db,"SELECT email FROM data WHERE id=".(int)$_POST["id"].""));
echo 
$res[0];
?>

Работает. Спасибо Вам огромное за помощь и терпение. С уважением, Алексей.
06.12.2014 15:25:31
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru