2013-07-09 3 views
-3

Я сбиваюсь с толку, когда читаю разные сообщения о типичной задаче, которую я пытаюсь выполнить, без сомнения, многие другие сделали это раньше. Таким образом, на данный момент в 2013 году, что является лучшим решением практики для достижения следующего:output result from php

  • У меня есть страница HTML, которая запрашивает у пользователя число значений, x1, x2, ..... хп.
  • Может быть от 10 до 20 таких входов. Поэтому я не хочу, чтобы они терялись или снова возвращались по какой-либо причине.
  • выполняют вычисления на основе пользовательских входов, затем выводят результаты (например, y1, y2, y3..y5).
  • Как было предложено некоторыми сообщениями здесь, я пробовал «эхо» (для PHP), это прекрасно работает. Тем не менее, он показывает результаты на новой странице, поэтому пользовательский ввод больше не отображается.
  • Я хочу, чтобы пользователь видел как их вход, так и результат. Таким образом, они могут печатать, если они хотят и посмотреть всю информацию на одной странице.
  • Я предпочитаю использовать «базовые» технологии, т.е. технологии, которые большинство пользователей могут использовать, что им не нужно нажимать «ОК» при некотором предупреждении, изменять некоторые настройки в своем браузере, принимать какие-то вещи и т. д.

Заранее спасибо!

+2

Ваше заявление о проблеме довольно длинное, я думаю, что вы ищете решение на основе ajax. – DevZer0

ответ

1
  1. Создание входов с помощью html.
  2. Выбор между перегрузочной страницей или AJAX
  3. Если вы выбрали перегрузочные затем использовать

код:

<form action="nextfile.php" method="POST"> 
    <input type="text" value="" name="y1" /> 
    <input type="text" value="" name="y2" /> 
    <input type="submit" value="calc me" name="submit" /> 
    </form> 

Тогда в nextfile.php вам нужно получить значение с $_POST, и если вы хотите, чтобы они с сохранением использования $_SESSION

Например,

<?php 
session_start(); 
if(isset($_POST['y1']) && isset($_POST['y2'])) 
{ 
    $_SESSION['res'] = (int)$_POST['y1'] * (int)$_POST['y2']; 
} 

Приведенный выше код выполнит расчет на двух входах с именем y1 и y2 и сохранит их в сеансе.

Если вы хотите AJAX, то вам необходимо посетить this page and see examples

Вы должны думать о решении JavaScript, потому что это будет соответствовать вашим потребностям и никакого кода сервера не требуется.

0

Самый простой способ представить форму на той же странице и заселить полей ввода:

// calc.php 
<?php 

    if (isset($_POST['foo'])) { 
     echo 'Result: ', $_POST['foo'] + 1; 
    } 

?> 

<form action="calc.php" ...> 
    <input name="foo" value="<?php if (isset($_POST['foo'])) echo htmlspecialchars($_POST['foo']); ?>"> 
    ... 
</form> 

Более современная версия будет представлять расчеты с помощью AJAX и заселить результат с помощью JavaScript, без перезагрузки стр.

+0

И Роберт, и Deceze отлично ответили на мой вопрос. Спасибо. – user1909173