|
|
|
| Хочу на своем сайте поставить программу-тест. Шаблон такой программы существует и он нормально работает. Меня все устраивает, за исключением одного: результат выводится в окошечке, а мне надо, что бы открывалось соответствующее внешнее окно с набранным мною текстом, но вот такой пустяк я никак не могу исправить!
Дело в том, что я вообще не пойму, как работает этот тест! Он очень короткий и сделан очень профессионально, но непонятно!
Вот в этой форме осуществляется вывод результа:
<form charset="windows-1251" name=D action="" method=post>
<input type=hidden name=tDtxt1 value="Это диагностика 1">
<input type=hidden name=tDtxt2 value="Это диагностика 2">
<input type=hidden name=tDtxt3 value="Это диагностика 3">
</form>
Ну как она работает?
В итоге в зависимости от результата тестирования на экране выводится "Это диагностика 1" или "Это диагностика 2" или "Это диагностика 3"
Имена tDtxt1 больше нигде в программе не используются!
Как мне сделать так, что бы вместо того, что бы на экран выводилось сообщение "Это диагностика 1" открывался некий файл diag-1.htm, вместо "Это диагностика 2" открывался некий файл diag-2.htm, в вместо "Это диагностика 3" открывался некий файл diag-3.htm?
И можно ли это ввобще осуществить?
Полностью программа приведена в Приложении - на всякий случай!
Пожалуйста, помогите! Все праздники просидет без толка!!! | |
|
|
|
|
|
|
|
для: Владимир55
(08.11.2005 в 14:33)
| | Например, так:
<input type=hidden name=tDtxt1 value="Щелкните здесь для открытия соответствующего файла" onclick="window.open('diag-1.htm')">
<input type=hidden name=tDtxt2 value="Щелкните здесь для открытия соответствующего файла"onclick="window.open('diag-2.htm')">
<input type=hidden name=tDtxt3 value="Щелкните здесь для открытия соответствующего файла"onclick="window.open('diag-3.htm')">
|
Да кучу способов можно придумать! | |
|
|
|
|
|
|
|
для: coloboc66
(08.11.2005 в 15:10)
| | Извиняюсь- не заметил, что поля скрытые, но все равно- смысл такой-же. | |
|
|
|
|
|
|
|
для: coloboc66
(08.11.2005 в 15:15)
| | Спасибо!
А можно ли сделать так, что бы без щелчка соответствующий файл открывался сам? | |
|
|
|
|
|
|
|
для: Владимир55
(08.11.2005 в 15:40)
| | Вместо щелчка можно установить любое другое событие, но событие должно быть, иначе броузер не будет знать, когда открывать файл. | |
|
|
|
|
|
|
|
для: coloboc66
(08.11.2005 в 15:52)
| | В этой прграмме событие у же есть и оно стоит ранее - нажание кнопки "Готово". А теперь я бы очень хотел вместо надписи открыть новвый файл!
Ну неужели это невозможно? | |
|
|
|
|
|
|
|
для: Владимир55
(08.11.2005 в 16:13)
| | Перед закрывающей скобкой функции makeDiagnosis() поставь две строки:
if(document.C.tDiagnosis.value =='Это диагностика 1')window.open('diag1.htm');
else if(document.C.tDiagnosis.value =='Это диагностика 2')window.open('diag2.htm');
|
А document.C.tDiagnosis.value засунь не в textarea, а в hidden:
<input type="hidden" name="tDiagnosis">
|
И будет щастье... | |
|
|
|
|
|
|
|
для: coloboc66
(09.11.2005 в 09:59)
| | Попробовал.
Форма стала иметь вот такой вид:
<form charset="windows-1251" name=D action="" method=post>
<input type=hidden name=tDtxt1 value="Щелкните здесь для открытия соответствующего файла" onclick="window.open('diag-1.htm')">
<input type=hidden name=tDtxt2 value="Щелкните здесь для открытия соответствующего файла"onclick="window.open('diag-2.htm')">
<input type=hidden name=tDtxt3 value="Щелкните здесь для открытия соответствующего файла"onclick="window.open('diag-3.htm')">
</form>
Правильно я сделал? вы такую корректировку имели в виду?
С крипт расчета результатов теперь стал таким:
<!-- скрипт расчета результатов тестирования -->
<script>
<!--
function makeDiagnosis(
if(document.C.tDiagnosis.value =='Это диагностика 1')window.open('diag1.htm');
else if(document.C.tDiagnosis.value =='Это диагностика 2')window.open('diag2.htm');
) {
tQcnt = 2;
tDcnt = 3;
summa = 0;
for( j=0; j<document.Q.rb1.length; j++ ) { if( document.Q.rb1[j].checked ) { summa += eval(document.Q.rb1[j].value); } }
for( j=0; j<document.Q.rb2.length; j++ ) { if( document.Q.rb2[j].checked ) { summa += eval(document.Q.rb2[j].value); } }
dx = -1;
for( i=0; i<tDcnt; i++ ) {
if( summa >= eval(document.L.elements[i].value) && summa <= eval(document.H.elements[i].value) ) { dx = i; break; }
}
document.C.tDiagnosis.value = document.D.elements[dx].value;
}
// -->
</script>
<!-- /скрипт расчета результатов тестирования -->
Правильно я сделал? Вы это имели в виду?
А вот это Ваше указание
А document.C.tDiagnosis.value засунь не в textarea, а в hidden:
<input type="hidden" name="tDiagnosis">
я не сумел исполнить - не понял, куда конкретно засовывать.
Но в итоге всего тест перестал открываться вообще. На служебной строке слева внизу пишет: "Ошибка на странице".
Что я сделал не так? | |
|
|
|
|
|
|
|
для: Владимир55
(09.11.2005 в 11:12)
| | В том заархивированном файле, который ты выложил в своем первом сообщении, ничего не меняй, просто добавь в конец функции makeDiagnosis() (в конец, а не в начало, как сделал ты) следующие строки, их количество равно количеству скрытых полей в форме с именем D:
if(document.C.tDiagnosis.value =='Это диагностика 1')window.open('diag1.htm');
else if(document.C.tDiagnosis.value =='Это диагностика 2')window.open('diag2.htm');
else if(document.C.tDiagnosis.value =='Это диагностика 3')window.open('diag3.htm');
|
Далее, в форме с именем С убери строку
<textarea name=tDiagnosis rows=6 cols=80 wrap></textarea>
|
и вместо нее вставь строку
<input type="hidden" name="tDiagnosis">
|
И будет щастье... | |
|
|
|
|
|
|
|
для: coloboc66
(09.11.2005 в 11:36)
| | Спасибо, coloboc66 !
Все так и вышло, как Вы предрекали - комнату огласил вопль восторга!
Большое Вам спасибо!
Очевидно, что Вы - ВЕЛИКОЛЕПНЫЙ программист, способный создавать сложнейшие программы!
Я очень рад достигнутому с Вашй помошью результату и очень Вам за помощь благодарен!
Благодарен за помощь и за терпение!
Спасибо Вам большое!
С уважением, Владимир. | |
|
|
|
|
|
|
|
для: Владимир55
(09.11.2005 в 12:30)
| | Мне до великолепного программиста, как и тебе- очень далеко. Просто нет предела совершенству- учись, и все получится! Форумы- великое дело, если это хорошие форумы. А этот форум- очень хороший форум. Я сам здесь учусь. | |
|
|
|