Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

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

 

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

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

тема: Сформировать формулу по нескольким наборам радио-кнопок
 
 автор: lena   (26.07.2005 в 12:13)   письмо автору
 
 

Тема :http://www.softtime.ru/forum/read.php?id_forum=4&id_theme=5647&page=1
<html>
<head>
<script language=JavaScript>
function _Submit(){
  document.vars.myvar.value="ToPHP";
  document.vars.submit();
}
</script>
</head>
<body>
<?php echo $HTTP_GET_VARS['myvar'];
echo 
$HTTP_GET_VARS['CountCol'];
?>
<form action="form.php" method="get" name="vars">
  <textarea name="myvar" style="display:none" value="1"></textarea>
  <INPUT TYPE="hidden" NAME="CountCol" VALUE="2">
  <input type="button" value="ToPHP" onclick = "_Submit();">
</form>
</body>
</html>

Может это какнбть поможет, или это не в тему?

   
 
 автор: cheops   (26.07.2005 в 13:15)   письмо автору
 
   для: lena   (26.07.2005 в 12:13)
 

HTML-форма отправит формулу в раздробленном виде и её можно будет создать в обработчике. При создании таблицы может быть несколько вариантов - много полей под каждый из элементов формы и одно поле под готовую форумулу, по которой потом и искать изображение.

   
 
 автор: lena   (26.07.2005 в 15:47)   письмо автору
 
   для: cheops   (26.07.2005 в 13:15)
 

Лучше одно поле под готовую формулу.

<script language=JavaScript>
function _setImage(){
        var formula = "ВР32-" +
document.getElementById('ampere_rating_text').innerHTML + "-" +
document.getElementById('removable_lever_text').innerHTML +
document.getElementById('number_pole_text').innerHTML +
document.getElementById('explosion_chamber_text').innerHTML+
document.getElementById('outer_clamp_text').innerHTML +
document.getElementById('handle_lever_text').innerHTML +
document.getElementById('auxiliary_contact_text').innerHTML+ "-" +
document.getElementById('degree_protection_text').innerHTML 

        alert(formula)
  document.getElementById('aircraft').src="images/" + formula + ".jpg"; // тут
меняется картинка
}
</script>

этот JS собирает формулу в одно
а как запрос послать теперь в базу?

   
 
 автор: cheops   (26.07.2005 в 19:40)   письмо автору
 
   для: lena   (26.07.2005 в 15:47)
 

Значение formula следует записать в скрытое поле HTML-формы, так чтобы оно передалось в PHP-обработчик HTML-формы.

   
 
 автор: lena   (28.07.2005 в 19:08)   письмо автору
 
   для: cheops   (26.07.2005 в 19:40)
 

Да formula пошлется если будет кнопка внизу формы на отправку данных. А мне нужно чтобы картинка менялась при клике на радио кнопку:))
Я отправляю данные так


document.getElementById('aircraft').src = "image.php?formula="+formula;  

А в файле image.php
написано

<?php require_once('Connections/cat.php'); ?> 
<?php
mysql_select_db
($database_cat$cat);
$sql=mysql_query("SELECT 'image' from 'subdirectorys' where 'nomer'='".$_GET['formula']."'"); 
$path=mysql_result($sql,0,0); 
$filename=$SERVER["DOCUMENT_ROOT"]."".$path
$f=fopen($filename"r"); 
$image fread($ffilesize($filename)); 
fclose($f); 
header("Content-type: image/gif"); 
echo 
$image;
$img=$sql('image');
 
?>


но картинка не меняется (пропадает)

   
 
 автор: cheops   (29.07.2005 в 00:33)   письмо автору
 
   для: lena   (28.07.2005 в 19:08)
 

А в смысле картинка не меняется (пропадает)?
Параметр formula приходит?
Файл $filename открывается?
В переменной $image что-нибудь имеется?

   
 
 автор: lena   (29.07.2005 в 10:39)   письмо автору
 
   для: cheops   (29.07.2005 в 00:33)
 

Мне не нужно чтобы на странице все происходило (без перегрузки).
]На Счет отправки formula
Я проверяла запрос таким образом.

document.location.href = "image.php?formula="+formula;  


image.php переписала на

<?php require_once('Connections/cat.php'); ?>
<?php
$image
=$_GET['formula'];
echo 
"$image";
mysql_select_db($database_cat$cat);
$query_Recordset1 "SELECT * FROM subdirectorys WHERE subdirectorys.nomer='".$_GET['formula']."'";
$Recordset1 mysql_query($query_Recordset1$cat) or die(mysql_error());
$row_Recordset1 mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 mysql_num_rows($Recordset1);
?>
<?php 
echo "<img src=".$row_Recordset1['image'].">"?>
<?php
mysql_free_result
($Recordset1);
?>

тогда все получается только на странице image.php:((
Но меня это не устраивает (если можно так сказать)
]На Счет открытия файла
image.php переписать на


<?php require_once('Connections/cat.php'); ?> 
<?php
mysql_select_db
($database_cat$cat);
$sql=mysql_query("SELECT 'image' from 'subdirectorys' where 'nomer'='".$_GET['formula']."'"); 
$path=mysql_result($sql,0,0); 
$filename=$SERVER["DOCUMENT_ROOT"]."".$path
$f=fopen($filename"r"); 
$image fread($ffilesize($filename)); 
fclose($f); 
header("Content-type: image/gif"); 
echo 
$image;
 
?>


Тогда выходит ошибка

Warning: Cannot modify header information - headers already sent by (output started at z:\home\localhost\www\test\koren\image.php:2) in z:\home\localhost\www\test\koren\image.php on line 10

И на всю страницу Буквы различных кодировок.
На счет картинки
На месте где должна быть картинка красный крестик

Извините меня за невежество:((

   
 
 автор: cheops   (29.07.2005 в 12:43)   письмо автору
 
   для: lena   (29.07.2005 в 10:39)
 

>Мне не нужно чтобы на странице все происходило (без перегрузки).
Совсем без перезагрузки не получится - так как база данных находится на сервере и чтобы обратиться к ней с клиентской страницы - её придётся перезагружать - тут даже можно не пытаться искать обходные пути.

>Тогда выходит ошибка
Куки, сессии, отправка заголовков должны происходить до отправки любой информации в окно браузера, т.е. до любого вывода echo, print или непосредственного вывода вне тэгов <?php и ?>. Это связано с тем, что HTTP-заголовки передаются перед всеми данными и когда происходит вывод в окно браузера PHP вынужден их пред этим отослать клиенту. Поэтому повторно, после вывода информации в браузер он не может работать с куками, сессиями и отправлять заголовки.
Если вывод текста до отправки заголовков необходим следует воспользоваться функциями управления вывода, позволяющих задерживать вывод информации в браузер.
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=837
Т.е. до заголовка
<?php
header
("Content-type: image/gif");
?>

не должно быть никакого вывода в окно браузера.

>Извините меня за невежество:((
Извиняться не за что :) так как мы руботаем с вами удалённо, я просто пытаюсь выяснить всю информацию, которая поможет решению проблемы. Отсюда обилие вопросов с моей стороны.

   
 
 автор: lena   (29.07.2005 в 15:06)   письмо автору
 
   для: cheops   (29.07.2005 в 12:43)
 

Насчет перегрузки страницы...
Тогда форма с радио кнопками встанет по умолчанию (checked)
и клиенту не видно что же он до этого выбирал.

   
 
 автор: cheops   (29.07.2005 в 17:28)   письмо автору
 
   для: lena   (29.07.2005 в 15:06)
 

Следует проверять значения POST-параметров и выставлять checked программно при помощи PHP. Т.е.
<input type='radio' name='blabla' value='1' <? if($_POST['blabla'] == 1) echo "checked"?>>

и так для каждого поля.

   
 
 автор: lena   (01.08.2005 в 10:50)   письмо автору
 
   для: cheops   (29.07.2005 в 17:28)
 

Да это вариант. Но задумка изначально : незаметная для пользователя смена картинок.
Иллюзия "Конструктора". А перегрузка страницы будет заметна.

   
 
 автор: cheops   (01.08.2005 в 13:31)   письмо автору
 
   для: lena   (01.08.2005 в 10:50)
 

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

   
 
 автор: lena   (01.08.2005 в 14:21)   письмо автору
 
   для: cheops   (01.08.2005 в 13:31)
 


document.getElementById('aircraft').src ="image/"+formula+".jpg";


В таком варианте картинка грузится напямую, не через MySql.
Разве нет способов создавать запросы без перезагрузки: невидемые окна, фреймы, которые обрабатывают запросы?

   
 
 автор: cheops   (01.08.2005 в 18:20)   письмо автору
 
   для: lena   (01.08.2005 в 14:21)
 

>Разве нет способов создавать запросы без перезагрузки:
>невидемые окна, фреймы,
Но их всё-равно придётся перезагружать.

   
 
 автор: lena   (01.08.2005 в 22:34)   письмо автору
 
   для: cheops   (01.08.2005 в 18:20)
 

Таким образом перегружается невидимый слой или страница, но форма остается перед глазами пользователя. Вы что нибудь знаете про такой трюк?

   
 
 автор: cheops   (01.08.2005 в 22:47)   письмо автору
 
   для: lena   (01.08.2005 в 22:34)
 

Я знаю, что он есть, но предпочитаю не испльзовать его, так как это приводит к значительному усложнению программного проекта, и, следовательно, к увеличению числа ошибок.

   
 
 автор: lena   (23.08.2005 в 13:05)   письмо автору
 
   для: cheops   (29.07.2005 в 17:28)
 

Можно я подниму эту тему снова?


<input type='radio' name='blabla' value='1' <? if($_POST['blabla'] == 1) echo "checked"?>

Этот вариант мне кажется не подойдет ?
т.к. формула соединяется в одно целое.
Каждую составляющую формулы надо передовать как отдельную переменную?

   
 
 автор: cheops   (23.08.2005 в 13:56)   письмо автору
 
   для: lena   (23.08.2005 в 13:05)
 

>Этот вариант мне кажется не подойдет ?
А почему?
>Каждую составляющую формулы надо передовать как отдельную переменную?
Да, каждый <input type='radio' следует обрабатывать таким образом.

   
 
 автор: Lena   (23.08.2005 в 14:05)   письмо автору
 
   для: cheops   (23.08.2005 в 13:56)
 


<script language=JavaScript>
function _setImage(){
        var formula = "BP32" + 
        document.getElementById('ampere_rating_text').innerHTML + 
        document.getElementById('removable_lever_text').innerHTML + 
        document.getElementById('number_pole_text').innerHTML + 
        document.getElementById('explosion_chamber_text').innerHTML + 
        document.getElementById('outer_clamp_text').innerHTML + 
        document.getElementById('handle_lever_text').innerHTML + 
        document.getElementById('auxiliary_contact_text').innerHTML + 
        document.getElementById('degree_protection_text').innerHTML ;
document.location.href = "test.php?formula="+formula;  
}
</script>


формирует BP3231B1010000.jpg

из которой BP, 32, 31 отдельные радиокнопки, а в базу передается BP3231B1010000.jpg, но обратно не передается по отдельности.

   
 
 автор: lena   (28.07.2005 в 21:25)   письмо автору
 
   для: cheops   (26.07.2005 в 19:40)
 

Может я не в том направлении двигаюсь?

   
Rambler's Top100
вверх

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