PHP+ форма + новое динамическое окно на JAVA

Статус
В этой теме нельзя размещать новые ответы.

funman

Знаток
Регистрация
28 Дек 2007
Сообщения
163
Реакции
26
PHP+ форма + новое динамическое окно на JAVA
--
Задача, есть PHP файл с несколькими переменными , в нем же есть форма с несколькими полями в которые пользователь заполняет несколько текстовых полей, после нажатия на кнопку в форме, над данными нужно провести пару простых математических вычислений и через ф-цю javascript создать динамическое окошко...

Застрял на моменте когда пользователь вводит данные, как их передать назад в PHP чтобы сделать обработку ...
(тут только в голову приходит , что мне советовали рание по другому вопросу, это использовать AJAX,JsHttpRequest) как бы из этой формы передаем в другую PHP в которой делаем расчеты и возвращаем в первую...(Хотя может есть другой способ что бы не использовать второй скрипт - а все обработки делать в одном скрипте? и из него же создать динамическое окно с ответом.

Но главная проблема все равно остаеться как полученные данные передать в яваскрипт, чтобы создать новое окно?

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

может есть какие нибудь готовые примеры как сделать такую связку? или может ктото из форумчан может сделать простой пример? например форму с парой текстовых полей, данные из этих полей перемножаються друг на друга и выводиться на в динамическое окно.
 
Несовсем понятно, что и куда надо передавать?
Переменные из пхп в яваскрипт? Или наоборот?
Если первое, то можно писать например в скрытые поля и с помощью getElementById выьаскивать эти значения.
Если из яваскрипт в пхп, то писать значения в поля и при перезагрузке скрипта они будут доступны через $_GET ($_POST).

Или я все не так понял?
 
Сделал просто передачу Post в другую PHP, в которой после обработки вывел данные на экран. Впринципе это решает частично мою задачу.

С Ява так и не разобрался, как их связать вместе, как передавать туда переменные и обратно...
 
А что за форма вообще ? )
Может нет смысла использовать AJAX ? Если обычные вычисления то можно написать javascript функцию, которая будет делать эти вычисления ?
 
А что за форма вообще ? )
Может нет смысла использовать AJAX ? Если обычные вычисления то можно написать javascript функцию, которая будет делать эти вычисления ?

можно примерчик?
У меня просто данные для расчетов в массив из файла подгружаються
но все равно интересно как к этому привязать явускрипт
 
можно примерчик?
У меня просто данные для расчетов в массив из файла подгружаються
но все равно интересно как к этому привязать явускрипт

Пример нельзя, так как не ясно какие расчеты Вы собрались проводить и какие данные Вам нужны для расчетов. На самом деле, пример должны предоставить Вы, что-бы было понятно что нужно вычислить ...
А данных для расчетов много, какого типа данные (пример, если можно) ? ) Почему в файле их храните ?

Но вобще, если уж храните данные в файле или БД, то тогда используйте AJAX. Вкратце, с Ajax должно выглядеть так:
HTML:
<script type='text/javascript'>
var xmlhttp;
var reqTimeout;

function loadPage(file) {
	xmlhttp = null;
    if (window.XMLHttpRequest) {
        try {
            xmlhttp = new XMLHttpRequest();
        } catch (e){}
    } else if (window.ActiveXObject) {
        try {
            xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');
        } catch (e){
            try {
                xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
            } catch (e){}
        }
    }
	
	if (xmlhttp) {
        xmlhttp.onreadystatechange = processReqChange;
        xmlhttp.open("GET", file, true);
        xmlhttp.send(null);
        reqTimeout = setTimeout("xmlhttp.abort();", 5000);
    } else {
        alert("Браузер не поддерживает AJAX");
    }
}

function processReqChange() {
    
    if (xmlhttp.readyState == 4) {
        clearTimeout(reqTimeout);
  
        // only if "OK"
        if (xmlhttp.status == 200) {
               // xmlhttp.responseText - это то что возвращает php файл (желательно что-б Вы уже сгенерировали html код который будете возвращать из php файла который получает данные)
               showWindow(xmlhttp.responseText,800,600);

        } else {
            alert("Не удалось получить данные:\n" + xmlhttp.statusText);
        }
    } else {
		// идет загрузка
	}
}
// функция открывает новое окно в которое записавает data. Хотя, впринципе, можно и без Ajax обойтись, а указать что-б эта функция открывала php файл с GET параметрами, нужными для вычисления (window.open("script.php?value1=1&value2=2"...)
function showWindow(data,winWidth,winHeight) {
	var tp = Math.ceil((screen.height - winHeight) / 2);
    var lf = Math.ceil((screen.width - winWidth) / 2);
	var win = window.open("", "new_window", "width=" + winWidth + ",height=" + winHeight + ",top=" + tp + ",left=" + lf);
	win.document.write(data); 
}

</script>

Вобщем, пример того что нужно вычислить и какие данные нужны для вычислений, тогда будет ясно как проще все сделать )
 
Код:
<?

// Ваш код
 
echo 'function Calculate () {
var param1 = document.GetElementById("value1").value;
var param2 = document.GetElementById("value2").value;
var param3 = '.$val.';
param1 = param1 + param2 + param3;
param2 = '("newwin.php?param='+param1+',"Write_message", "directories=no,height=300,location=no,menubar=no,resizable=no,scrollbars=no, status=yes, toolbar=no,width=300");';

window.open(param2);

return param1;
';

?>

<form action="#" method="POST">
<input type="text" id="value1">
<input type="text" id="value2">
<input type="Button" OnClick="Calculate();">

</form>

При нажатии на кнопку в новое окошко передадутся вычесленные параметры. value1, value2 Вы вводите сами, $val читается из файла
 
Код:
<SCRIPT LANGUAGE="JavaScript"> 

function calculator(form) {//Функция подсчета
a = eval(form.a.value); //Присваем a значение из первого поля a
b = eval(form.b.value)+a; //Присваем b значение из второго поля b и прибаляем к нему a
c = b*5; //Присваем с значение и b (к которому мы уже прибавили a) и умножаем на 5
form.total1.value = c; //выдаем результат
}

</SCRIPT>

Код:
<form> 
<input type="text" name="a" size="15">
<input type="text" name="b" size="15">
<input type="text" name="total1" size="20" maxlength="40"> 
<input type="button" value="Рассчитать" onClick="calculator(this.form)">
</form>
 
кстате кому интересно нашел интересное решение калькуляторного вопроса:
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху