генерирую выпадающий - при сабмите передаётся не то что нужно, почему ?

storng

Новичок
генерирую выпадающий - при сабмите передаётся не то что нужно, почему ?

делаю запрос к БД и на лету формирую выпадающий список:

PHP:
<?
mysql_connect($server,$user,$pass) or die(" Нет коннекта !");
mysql_select_db($DB);
?>
<form action="addnews.php" method="POST">   <br>
<?
mysql_connect($server,$user,$pass) or die(" Нет коннекта !");
mysql_select_db($DB);
$request= "SELECT id_category, name_category FROM category_tbl ORDER BY id_category";
$result=mysql_query($request);

		echo "<select name=\"idcat\">"."\n";
		while($row=mysql_fetch_array($result))
		{
	echo "<option valuе=\"".$row['id_category']."\">".$row['name_category']."\n";
		}
		echo "</select>"."\n"."\n"."\n"."\n";

?>
    <input type="submit" name="sendnews" value="Послать"> 
    </form>
Вроде бы всё красиво ,нормально формирует,
в базе данны в таблице категорий такие данные

id_category/name_category
1 / Технология
2 / Литература
3 / Наука
4 / Музыка

Так вот, при клике, передаётся не значение value, а тот текст , который беру из имени категории, т.е. не ID передаётся, а наименование.
Делаю:
PHP:
print_r($_POST);
И вижу

PHP:
Array ( [idcat] => Музыка [sendnews] => Послать )
Почему такое может быть, голову сломал ???

-~{}~ 07.09.07 12:38:

+

а вот другой пример, точно такого же списка, так передаётся именно значение value, а не текст.

PHP:
<?
if (isset($_POST['spisok']))

{
	print_r($_POST);
}
?>


<form action="test.php" method="POST">

<select name="spisok"> 
<option valuе="1">значение 1
<option value="2">значение 2
<option value="3">значение 3
<option value="4">значение 4
<option value="5">значение 5
</select> 
<br>
<input type="submit" name="sendnews" value="кнопка">
</form>
Посмотрел сформированный HTML в первом и втором варианте.

Тот код, который неправильно возвращает значение:

PHP:
<form action="addnews.php" method="POST">   <br>

<select name="idcat">
<option valuе="1">Технология
<option valuе="3">Наука
<option valuе="5">Литература
<option valuе="6">Музыка
<option valuе="11">Спорт
<option valuе="13">Биология
<option valuе="14">Изотерика
<option valuе="15">Астрономия
</select>
 <input type="submit" name="sendnews" value="Послать"> 
  </form>
А вот который правильно:

PHP:
<form action="test.php" method="POST">

<select name="spisok"> 
<option valuе="1">значение 1
<option value="2">значение 2
<option value="3">значение 3
<option value="4">значение 4
<option value="5">значение 5
</select> 

<input type="submit" name="sendnews" value="кнопка">
</form>
Если честно, разницы не вижу, не пойму в чём дело...

-~{}~ 07.09.07 12:39:

Второй, тестовый правильный вариант, возвращает то что нужно :
PHP:
Array ( [spisok] => 3 [sendnews] => кнопка )
Где я глючу ?
 

FreeSpace

Чукча-читатель
Возьми уже сгенерированный "неправильный" HTML, который ты привел, загрузи его в браузере и посмотри, какие данные он будет передавать на сервер.
Где-то у тебя какая-то мелкая ошибка, которая ускользнула из того кода, который ты привёл :)
 

Фанат

oncle terrible
Команда форума
забавная опечатка.
в таких случаях помогает переписать весь код заново
 

storng

Новичок
Всем спасибо :)
Действительно тупая опечатка
в value - была последняя буква русская
 

Фанат

oncle terrible
Команда форума
просто запомни на будущее, что при отсутствии value отсылается текст между <option>
кстати, закрывающий </option> лучше ставить. на всякий случай.
 

storng

Новичок
*****, бывает, что большой блок кода - и где то опечатка именно в том, что автоматом влепил русскую букву, и синтаксис однозначно не показывает где ошибка.
Я беру весь код ,загоняю в ворд, ставлю шрифт, который не поддерживает русский язык - и тут же становится ясно, где ошибочная буква стоит :)
 

Фанат

oncle terrible
Команда форума
ну, тоже метод.

-~{}~ 07.09.07 13:09:

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

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

И не падает в обморок от слова "тупой", если ошибка действительно тупая.

Эх, кабы здесь хоть 10% было таких посетителей...
 

Фанат

oncle terrible
Команда форума
Ну, например - сначала была опечатка, а заметил, когда был в русской раскладке.
 

storng

Новичок
Андрейка
Так наверное и было как сказал Фaнaт :)
Просто пишу вслепую, и с одинаковой скоростью, что в англ. что в русской расскладке, и мозг видимо иногда опазывает с переключением себя :)

-~{}~ 07.09.07 14:05:

Фaнaт,
спасибо, учту по поводу </option>
 

antson

Новичок
Партнер клуба
storng

как альтернатива копированию в ворд можно менять кодепадж в редакторе. например в фаре Shift-F8 переключаться между досовской и виндовской кодировкой.
 

baev

‹°°¬•
Команда форума
а как можно ошибочно влепить русскую букву (кроме "c") ?
— а как можно ошибочно влепить русскую «с»?

Оно ж по-любому: нужно, чтобы раскладка клавиатуры «ошибочно» поменялась...
... а вот если код не сам набирал, а откуда-то скопировал, то — возможно всё.
 

SiMM

Новичок
Шрифты надо юзать соответствующие :) У меня в FAR'е стоит шрифт, где знаки латиницы жирные, а кириллицы - тонкие - сразу видно, что где.
Если кому надо - http://ifolder.ru/3285458
Кстати, букву 'с' при слепом наборе проще всего влепить - она и в латинице, и в кириллице находится на одной и той же клавише.
 
Сверху