Ответ с одной страницы на другую в php без ajax

0

Я только начинаю с Php и имею некоторые сомнения.

Я создал 2 страницы one.php и two.php

ONE.php
<body>
  <form method="post" action="TWO.php">
    First Number<input type="text" name="txt1"><br>
    Second Number<input type="text" name="txt2"><br>
  <input type="submit">
</form>
</body>

TWO.php
<body>
  <?php
    $sum=$_POST["txt1"] + $_POST["txt2"];
    echo $sum;
  ?>
</body>

Значения POST составляют one.php до two.php. Two.php вычисляет сумму и эхо-результат. Мой запрос заключается в том, что я смогу получить сумму, выраженную эхом на one.php, используя только php, и ее важность для публикации данных на другой странице и получения ответа оттуда.

  • 1
    перенаправить на страницу one.php с параметром sum и получить сумму в one.php.
  • 1
    Без AJAX у вас будет перезагрузка страницы. Вы согласны с этим?
Показать ещё 3 комментария
Теги:

3 ответа

1
Лучший ответ

Да Вы. Просто обработайте отправку формы (запрос POST) в one.php. Когда запрос для one.php не POST, просто покажите форму.

Типичный способ:

// ONE.php
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $content = "Sum is " . $_POST["txt1"] + $_POST["txt2"];
}
else {
    $content = <<<EOC
     <form method="post" action="ONE.php">
        First Number<input type="text" name="txt1"><br>
        Second Number<input type="text" name="txt2"><br>
        <input type="submit">
     </form>
EOC;
}
?> 
<!DOCTYPE html>
<html>
<head>
  <title>ONE</title>
  <meta charset="utf-8"> <!-- or whatever charset you are using -->
</head>
<body>
  <?php echo $content ?>
</body>
</html>

Отредактировано, OP нуждается в двух файлах, но распечатать результат на one.php

Для передачи данных между двумя файлами вы можете:

  • Задайте данные в первом файле (two.php) и потребуйте второй (one.php, где вы будете печатать значение)
  • Используйте сеансы PHP.

С последним вам нужно сделать (ну, вам не нужно, но это означает работать с a) перенаправление страницы, поэтому мой рекомендуемый подход для этого случая - использование первого. Код может быть примерно таким:

// TWO.php
<?php
// you should probably check if $_POST['txt1'] and $_POST['txt2'] does really exists and throw and error if not...
$sum = $_POST["txt1"] + $_POST["txt2"];

require "ONE.php" // careful if you're on a *nix file system the NameCase is extremely important!


// ONE.php
<?php
if (isset($sum)) {
    $content = "Sum is " . $sum;
}
else {
    $content = <<<EOC
     <form method="post" action="TWO.php">
        First Number<input type="text" name="txt1"><br>
        Second Number<input type="text" name="txt2"><br>
        <input type="submit">
     </form>
EOC;
}
?> 
<!DOCTYPE html>
<html>
<head>
  <title>ONE</title>
  <meta charset="utf-8"> <!-- or whatever charset you are using -->
</head>
<body>
  <?php echo $content ?>
</body>
</html>
  • 0
    Абсолютно сэр, я очень ценю ваши усилия, но важно разместить данные на другой странице и получить оттуда ответ.
  • 0
    @Sumeet, как насчет сейчас?
Показать ещё 1 комментарий
1

Вы можете попробовать это только на одной странице:

ONE.php

<html>
<head></head>
<body>
    <form method="post" action="ONE.php">
        First Number<input type="text" name="txt1"><br>
        Second Number<input type="text" name="txt2"><br>
       <input type="submit">
    </form>
    <?php
        // Verify if $_POST["txt1"] and $_POST["txt1"] are defined
        // (when form is submit $_POST, $_GET and other $_ PHP vars 
        // are set). If form isn't submitted, set 0 on each variable 
        // to perform sum. Is necessary check values to avoid PHP
        // Warnings/Errors (In this case with isset function. There
        // are many different ways to perform it)
        $txt1 = isset($_POST["txt1"]) ? $_POST["txt1"] : 0;
        $txt2 = isset($_POST["txt2"]) ? $_POST["txt2"] : 0;
        $sum = $txt1 + $txt2;
        //Print sum result
        echo 'Sum is: '.$sum;
    ?>
</body>
</html>

Для сравнения я использую тройные операторы, которые упрощают/сводят к минимуму код традиционного if/else. Также вы можете использовать традиционное if/else (простое сравнение) или переключатель (множественное сравнение)

1

Попробуйте этот код:

<body>
<?php
if($_POST){
    $sum = $_POST["txt1"] + $_POST["txt2"];
    echo $sum;
}else{
?>
<form method="post" action="">
        First Number<input type="text" name="txt1"><br />
        Second Number<input type="text" name="txt2"><br />
        <input type="submit">
    </form>
<?php } ?>
</body>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню