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

HTML+CSS+JavaScript

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

 

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

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

тема: Модальное диалоговое окно
 
 автор: Mefisto84   (28.12.2007 в 18:03)   письмо автору
 
 

Здравствуйте!
Пытаюсь уже второй день сделать модальное диалоговое окно, по учебнику. Сначала хотел сделать просто по подобию как в учебнике но на свой лад, так как мне нужно окно с одним полем ввода, но увы не заработало. Решил набрать пример прям из учебника, все равно не работает. Подскажите что не так?
Во код главной страницы:

<head>

<script language="JavaScript"> 
 var Dialog = new Array();
 var Fields = new Array("Никнэйм","Пол","Рост","Вес","Имя");
 function show_dialog() {
  output.innerHTML = "";
  Dialog = window.showModalDialog("http://localhost/Ajax/SearchUser.html", "", "dialogWidth:30em; dialogHeight: 30em;");
  for (i=0;i<Dialog.length;i++)
    output.innerHTML += ("<b>" + Fields[i] + "</b>: " + Dialog[i] + "<br>")
                        }
</script>

</head>
<body>
<input type='button' value='Поиск' onclick="show_dialog()">
<P name='output' ID='output'></P>
</body>


а вот код страницы с этим самым модальным окном:

<html>
<head>

<script>
function setValues() {
 var arReturnValues = new Array();
 arReturnValues[0] = document.forms[0].elements[0].value;
 arReturnValues[1] = document.forms[0].elements[1].value;
 arReturnValues[2] = document.forms[0].elements[2].value;
 arReturnValues[3] = document.forms[0].elements[3].value;
 arReturnValues[4] = document.forms[0].elements[4].value;
 window.returnValue = arReturnValues;
 window.close();
}
</script>

<title></title>
</head>

<body bgcolor="#FFFFFF" text="#000000">

<h1>введите никнэйм</h1>
<form>
<input name="fieldNik" ID="fieldNik" size="30"><br>
<input name="fieldPol" ID="fieldPol" size="30"><br>
<input name="fieldRost" ID="fieldRost" size="30"><br>
<input name="fieldVes" ID="fieldVes" size="30"><br>
<input name="fieldName" ID="fieldName" size="30"><br>
<input type="button" value="ok" ONCLICK="setValues()"><br>
<input type="button" value="отмена" ONCLICK="window.close()">
</form>
</body>
</html>

   
 
 автор: sim5   (28.12.2007 в 18:47)   письмо автору
 
   для: Mefisto84   (28.12.2007 в 18:03)
 

Если пример был написан так как вы привели (прием данных), то пример не верен, если это ваше изобретение то все не так. Код страницы с вызовом:

<head> 
<script language="JavaScript">  
 function show_dialog() { 
  var results = new Array();
     results = window.showModalDialog("url.html")
     resStr = "Ошибка в данных!"
     if ( results != null ) {
        resStr = "Введены данные:\n";
        resStr += "Ник: " + results["fieldNik"] + "\n";
        resStr += "Пол: " + results["fieldPol"] + "\n";
        resStr += "Рост: " + results["fieldRost"] + "\n";
        resStr += "Вес: " + results["fieldVes"] + "\n";
        resStr += "Имя: " + results["fieldName"] + "\n";
     }
     alert(resStr);
   }
</script> 
</head> 
<body> 
<input type='button' value='Поиск' onclick="show_dialog()"> 
<P name='output' ID='output'></P> 
</body>

Код страницы в окне:

<html> 
<head> 
<script>
function setValues (f) {
  var valArray = new Array;
  for (var i = 0; i < f.length; i++)
   with (f[i])
    if (name != "")
     valArray[name] = value;
  window.returnValue = valArray;
  event.returnValue = false;
  window.close();
}  
</script> 
</head> 
<body> 
 <form NAME="as"> 
Ник: <input name="fieldNik" ID="fieldNik" size="30"><br> 
Пол: <input name="fieldPol" ID="fieldPol" size="30"><br> 
Рост: <input name="fieldRost" ID="fieldRost" size="30"><br> 
Вес: <input name="fieldVes" ID="fieldVes" size="30"><br> 
Имя: <input name="fieldName" ID="fieldName" size="30"><br> 
<input type="button" value="ok" ONCLICK="setValues(this.form)">
</form> 
</body> 
</html>

   
 
 автор: Mefisto84   (29.12.2007 в 18:30)   письмо автору
 
   для: sim5   (28.12.2007 в 18:47)
 

Нет, это не мое изобретение, все набирал из учебника. Ваш вариант работает, только чуть-чуть не то что надо, мне надо было что бы все выводилось на страницу, а не в алерт. Но это не страшно, дописал output.innerHTML = resStr; и заработало. Скажите пожалуйст:
1. как теперь сделать что бы вся эта инфа выводилась в текстовое поле(<input type='text'>)?
2. Можно ли при помощи Javascript сделать запрос к базе банных Mysql, или это возможно только при помощи Ajax?

   
 
 автор: sim5   (29.12.2007 в 18:58)   письмо автору
 
   для: Mefisto84   (29.12.2007 в 18:30)
 

1. results - это массив полученный из модального диалога, можете распаковать его как строку в поле ввода, или в несколько полей, через их свойство value. Что конкретно вам надо не знаю.
2. Можно, только не непосредственно к базе, а к РНР сценарию, который и выполнит соответствующий запрос.

   
 
 автор: maxnag   (02.01.2008 в 12:01)   письмо автору
 
   для: sim5   (29.12.2007 в 18:58)
 

К сожалению этот метод работает под браузерами ИЕ, а в Опере и ФФ нет. Кто знает как добиться модальности в 2-х последних браузерах?

   
 
 автор: sim5   (02.01.2008 в 12:11)   письмо автору
 
   для: maxnag   (02.01.2008 в 12:01)
 

Никак, не понимают эти браузеры этого диалога. Свое надо писать.

   
 
 автор: Mefisto84   (02.01.2008 в 19:25)   письмо автору
 
   для: sim5   (02.01.2008 в 12:11)
 

Работает только в ИЕ? Вот это задница, прошу прощения. Тогда это не подходит. Написать не смогу. А случайно готовых скриптов на подобии нет?

   
Rambler's Top100
вверх

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