Логин:   Пароль:   
   
 
X   Сообщение сайта
(Сообщение закроется через 2 секунды)
 
> Цикл php, Не выдает значение echo
Godz87
сообщение 23.2.2017, 14:54
Сообщение #1





Группа: Пользователи
Сообщений: 34
Регистрация: 27.12.2007
Пользователь №: 33488
Спасибо сказали: 0 раз(а)



Добрый день, прошу помочь знающих и объяснить почему так. Только начинаю изучать php.

Делаю цикл вывода картинок на сайт. есть 40 картинок и их хочу вывести циклом в форму с checkbox где value=$i будет тот же номер что и картинка. Подскажите где ошибка?

Код

<?php
    $i="3";  
    for ( $i = 3; $i <= 40; $i++)
    {
    echo "<input type=checkbox name=img value=$i><img src=img\$i.gif border=0>";
    }
    ?>


При таком коже выводит checkbox но картинки нет, т.к. нет значения img\$i.gif , хотя echo в двойных кавычках
Но при таком коде:
Код

<?php
    $i="3";  
    for ( $i = 3; $i <= 40; $i++)
    {
    echo "$i";
    }
    ?>


Выводит значение 3 4 5 6 .... и до 40

Что не так в коде?
 
+Цитировать сообщение
Ent
сообщение 23.2.2017, 17:53
Сообщение #2


Опытный


Группа: Пользователи
Сообщений: 610
Регистрация: 2.5.2007
Из: Москва, Выхино
Пользователь №: 27634
Спасибо сказали: 88 раз(а)



Отложите пока php.
Напишите руками HTML код страницы так, как он должен работать.


--------------------
Mikrotik hAP ac
 
+Цитировать сообщение
Godz87
сообщение 23.2.2017, 19:02
Сообщение #3





Группа: Пользователи
Сообщений: 34
Регистрация: 27.12.2007
Пользователь №: 33488
Спасибо сказали: 0 раз(а)



Цитата(Ent @ 23.2.2017, 17:53) *
Отложите пока php.
Напишите руками HTML код страницы так, как он должен работать.


Вот код html
Код
<input type="checkbox" name="img" value="2" CHECKED><img src="img\2.gif" width="" height="" border="0">
<input type="checkbox" name="img" value="3"><img src="img\3.gif" width="" height="" border="0">
<input type="checkbox" name="img" value="5"><img src="img\5.gif" width="" height="" border="0">
<input type="checkbox" name="img" value="6"><img src="img\6.gif" width="" height="" border="0">
<input type="checkbox" name="img" value="7"><img src="img\7.gif" width="" height="" border="0">
<input type="checkbox" name="img" value="8"><img src="img\8.gif" width="" height="" border="0">
<input type="checkbox" name="img" value="9"><img src="img\9.gif" width="" height="" border="0">

и так до 40

Можно конечно его сделать 40 раз, но если у меня будет 1000 картинок, в ручную описывать уйдет очень много времени
 
+Цитировать сообщение
Ent
сообщение 23.2.2017, 19:16
Сообщение #4


Опытный


Группа: Пользователи
Сообщений: 610
Регистрация: 2.5.2007
Из: Москва, Выхино
Пользователь №: 27634
Спасибо сказали: 88 раз(а)



Для проверки достаточно и 2-3 строки. Пустые width и height тут явно лишние. Обратный слеш замени на прямой.

Этот код в браузере работает так, как хотелось?


--------------------
Mikrotik hAP ac
 
+Цитировать сообщение
Godz87
сообщение 23.2.2017, 20:14
Сообщение #5





Группа: Пользователи
Сообщений: 34
Регистрация: 27.12.2007
Пользователь №: 33488
Спасибо сказали: 0 раз(а)



Цитата(Ent @ 23.2.2017, 19:16) *
Для проверки достаточно и 2-3 строки. Пустые width и height тут явно лишние. Обратный слеш замени на прямой.

Этот код в браузере работает так, как хотелось?


Не работает, картинок нет , после замены слеша должно было быть так: img\3.gif, но выходит так img%7C3.gif (браузер хром)
Подозрения были на кавычки , а оказывается слеш виноват huh.gif
Код
<?php
$i = "3";  
    
for ( $i = 3; $i <= 40; $i++)
{
echo "<input type=checkbox name=img value=$i><img src=img|$i.gif border=0>";
}
print($i);
?>


Print выдает последнее значение 41
 
+Цитировать сообщение
Ent
сообщение 23.2.2017, 20:46
Сообщение #6


Опытный


Группа: Пользователи
Сообщений: 610
Регистрация: 2.5.2007
Из: Москва, Выхино
Пользователь №: 27634
Спасибо сказали: 88 раз(а)



Прямой слеш(или дробь) - /. обратный слеш - \, а то что вы поставили - | есть вертикальная черта.
По идее любой слеш будет работать, однако посмотрите, как браузер запрашивает вашу картинку на сервере.
Пример как ваш:
/var/www/server/img\3.gif

Везде стоит прямой слеш, вот и делайте их все одинаковыми.

И да, заставьте работать html код. Про php пока забудьте.

Сообщение отредактировал Ent - 23.2.2017, 20:47


--------------------
Mikrotik hAP ac
 
+Цитировать сообщение
Godz87
сообщение 23.2.2017, 22:43
Сообщение #7





Группа: Пользователи
Сообщений: 34
Регистрация: 27.12.2007
Пользователь №: 33488
Спасибо сказали: 0 раз(а)



Цитата(Ent @ 23.2.2017, 20:46) *
Прямой слеш(или дробь) - /. обратный слеш - \, а то что вы поставили - | есть вертикальная черта.
По идее любой слеш будет работать, однако посмотрите, как браузер запрашивает вашу картинку на сервере.
Пример как ваш:
/var/www/server/img\3.gif

Везде стоит прямой слеш, вот и делайте их все одинаковыми.

И да, заставьте работать html код. Про php пока забудьте.


Спасибо, Вам огромное.

Заработал мой цикл именно с "/" :
Код
  
<?php
$i = "3";  
for ( $i = 3; $i <= 40; $i++)
{
echo "<input type=checkbox name=img value=$i><img src=img/$i.gif border=0>";
}
?>


Но в html работает "\" :
Код
<input type=checkbox name=img value=2 checked ><img src=img\2.gif width= height= border=0>
 
+Цитировать сообщение
Ent
сообщение 23.2.2017, 22:59
Сообщение #8


Опытный


Группа: Пользователи
Сообщений: 610
Регистрация: 2.5.2007
Из: Москва, Выхино
Пользователь №: 27634
Спасибо сказали: 88 раз(а)



Да, в html обратный слеш работать будет, но почему он вам так нравится? Рекомендую везде ставить прямой/(дробь).
Вот теперь, если html стал работать как надо, следующим шагом сделай на php все строки в точности такими:
Код
<input type="checkbox" name="img" value="3"><img src="img/3.gif" width="" height="" border="0">
но не такими:
Код
<input type=checkbox name=img value=3 checked ><img src=img\2.gif width= height= border=0>


Сообщение отредактировал Ent - 23.2.2017, 23:02


--------------------
Mikrotik hAP ac
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0



© 2005—2016 ООО «Нэт Бай Нэт Холдинг»,
Все права защищены.
Правила пользования ресурсами