Как отобразить ответ на форму? - PullRequest
0 голосов
/ 25 марта 2012

Если я попытаюсь опубликовать ответ на той же странице, будет ли он выглядеть примерно так?Не слишком уверен, что я использовал правильные функции, пожалуйста, проверьте мой код:

<form method="post" action="activity.php">
<input type="text" name= "num1" value="Enter a number"/>
    <select name= "conversion">
        <option>Select a conversion</option>
        <option name="lb to kg">lbs to kgs</option>
        <option name="kgs to lbs">kgs to lbs</option>
        <option name="cm to in">cms to inchs</option>
        <option name="inchs to cms">inchs to cms</option>
        <option name="pints to litres">pints to litres</option>
        <option name="litres to pints">litres to pints</option>
        <option name="faranheit to centigrade">faranheit to centigrade</option>
        <option name="centigrade ti faranheit">centigrade to faranheit</option>
    </select>
    <input type="submit" value="convert" />
    </form>

Тогда php после формы:

$num1 = $_GET["num1"];
$conversion = $_POST["conversion"];

if($conversion == "lbs to kgs")
{
$answer_lb = $num1 * 0.45;
echo $answer_lb;
}
if($conversion == "kgs to lbs")
{
$answer_kg = $num1 * 2.2;
echo $answer_kg;
}
if($conversion == "cms to inchs")
{
$answer_inch = $num1 * 2.54;
echo $answer_inch;
}

if($conversion == "inchs to cms")
{
$answer_cm = $num1 * 0.393;
echo $answer_cm;
 }
 if($conversion == "pints to litres")
 {
$answer_pints = $num1 * 0.568;
echo $answer_pints;
 }
if($conversion == "litres to pints")
{
$answer_litres = $num1 * 1.579;
echo $answer_litres;
}
 if($conversion == "faranheit to centigrade")
{
$answer_faranheit = ($num1 - 32) * (5/9);
echo $answer_faranheit;
}
if($conversion == "centigrade to faranheit")
{
$answer_centigrade = ($num1 * 9/5) + 32;

 }

?>

<em>

Я не был уверен, должен ли прийти код phpдо или после формы и не был уверен в действии формы.

Ответы [ 3 ]

1 голос
/ 25 марта 2012

// РЕДАКТИРОВАТЬ ответ в соответствии с вашими потребностями:

Вот рабочий пример кода ниже: http://codepad.viper -7.com / vu6j0N

<?php
$calculation_models = array();
  $calculation_models[] = array('description'=>'lb to kg', 
                                'calculation' => function($val) { return $val * 0.45; }
                               );
  $calculation_models[] = array('description'=>'kgs to lbs', 
                                'calculation' => function($val) { return $val * 2.2; }
                               );
  $calculation_models[] = array('description'=>'cm to in', 
                                'calculation' => function($val) { return $val * 2.54; }
                               );
  $calculation_models[] = array('description'=>'inchs to cms', 
                                'calculation' => function($val) { return $val * 0.393; }
                               );
  $calculation_models[] = array('description'=>'pints to litres', 
                                'calculation' => function($val) { return $val * 0.568; }
                               );
  $calculation_models[] = array('description'=>'litres to pints', 
                                'calculation' => function($val) { return $val * 1.579; }
                               );
  $calculation_models[] = array('description'=>'faranheit to centigrade', 
                                'calculation' => function($val) { return ($val - 32) * (5/9); }
                               );
  $calculation_models[] = array('description'=>'centigrade to faranheit', 
                                'calculation' => function($val) { return ($val * 9/5) + 32; }
                               );

  if (isset($_GET['val']) && isset($_GET['model'])) {
    $result = $calculation_models[$_GET['model']]['calculation']($_GET['val']);
    echo 'The result is ' . $result;
  }
?>

<!-- build the form dynamically from the array above -->

<form method="get" action="#">
  <input type="text" name="val" placeholder="Enter a number"/>
  <select name="model">
    <?php foreach($calculation_models as $key => $model) : ?>
      <option value="<?php echo $key; ?>"><?php echo $model['description']; ?></option>
    <?php endforeach; ?>
  </select>
  <input type="submit" value="convert" />
</form>
0 голосов
/ 25 марта 2012

Я предполагаю, что вам нужны такие файлы, как: calculator.html и calculator.php

calculator.html - это форма.

Первое решение для отображения результатов на той же странице -просто:

поместите все в caclculator.php следующим образом:

    <?php
    if($_GET["submit"]){
    #your code
    }
    ?>
    <html>
    <!-- your html -->
    </html>

Если это не то, о чем вы просили, следующий метод - использовать iframe «с результатом» и javascript для отправки.ваши данные в iframe.

И последнее решение - обычный ajax.

0 голосов
/ 25 марта 2012

если вы задаете этот вопрос, то это не совсем просто.Для изменения содержимого страницы без перезагрузки новой страницы обычно используется метод, известный как AJAX, в основном он использует javascript для отправки запроса, и javascript снова обработает ответ после его получения.

...