2016-04-18 3 views
0

Я пытаюсь сделать PHP-конвертер, который конвертирует измерения с помощью базового и простого кода, насколько это возможно (новичок в этом). Я надеюсь, что этот образ поможет вам понять, что я пытаюсь сделать:PHP измерительный преобразователь

Я создал HTML файл с формой, которая выглядит следующим образом:

<form action="converter.php" method="post"> 
<input type="text" name="number"> 
<select name="choose"> 
     <option>Choose</option> 
     <option value="meter" id="meter">Meter</option> 
     <option value="cm" id="cm">Cm</option> 
     <option value="foot" id="fot">Fot</option> 
     <option value="inches" id="tum">Tum</option> 
<input type="submit" value="Convert!"> 
</form> 

И PHP файл, что выглядят так, и это не так много:

<?php  
$number = $_POST['number']; 
$choose = $_POST['choose']; 

$x = $number;  
echo "$number $choose <br>";  
?> 

Aaaand Я застрял. Я не знаю, как преобразовать значения, как математически, так и в код. Не имеет значения, если вы дадите мне весь код или намек на то, что делать дальше, просто нужно нажать в правильном направлении.

Спасибо!

+0

Вы, вероятно, придется написать переключатель, в зависимости от что вы выбираете, и делаете разные расчеты основаны на выбранном вами выборе. – Naruto

+0

Как сказал @Thamizhan, во-первых, нам нужно знать, в каком блоке находится ваш вход. См? – scottevans93

+0

** Или ** - это раскрывающийся список выбора типа ввода? Впоследствии вы хотите преобразовать устройство во все остальные единицы? – scottevans93

ответ

0

Simpler один:

index.html

<form action="converter.php" method="post"> 
<input type="number" name="number" required> 
<select name="choose"> 
     <option>Choose</option> 
     <option value="meter" id="meter">Meter</option> 
     <option value="cm" id="cm">Cm</option> 
     <option value="foot" id="fot">Fot</option> 
     <option value="inches" id="tum">Tum</option> 
<input type="submit" value="Convert!"> 
</form> 

converter.php

<?php 
$number = $_POST['number']; 
$choose = $_POST['choose']; 

$meters = $number/($choose == 'cm'? 100 : ($choose == 'foot'? 3.28084 : ($choose == 'inches'? 39.3701 : 1))); 

echo "Meters : $meters<br/>"; 
echo "Cm : ".($meters*100)."<br/>"; 
echo "Foot : ".($meters*3.28084)."<br/>"; 
echo "Inches : ".($meters*39.3701)."<br/>"; 
+0

Вы уверены, что вычисления этого продукта верны? – Mordor

+0

Если у вас есть какие-либо сомнения, обратитесь к вашему калькулятору – Thamilan

+0

Ну, если я хочу конвертировать 1 см, он говорит, что 1 см составляет 100 метров. – Mordor

0

Выполняйте необходимые вычисления в файле php.

Примечание: Отредактировано с учетом, но не проверено. Двойная проверка части расчета.

HTML

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script> 
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script> 

<script type="text/javascript"> 
$(document).ready(function() { 

    //called when key is pressed in textbox 
    $("#number").keypress(function (e) { 
    //if the letter is not digit then display error and don\'t type anything 
    if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) { 
       return false; 
    } 
    }); 
}); 
</script> 

<form action="converter.php" method="post"> 
<input type="text" name="number" id="number"> 
<select name="choose"> 
     <option>Choose</option> 
     <option value="meter" id="meter">Meter</option> 
     <option value="cm" id="cm">Cm</option> 
     <option value="foot" id="fot">Fot</option> 
     <option value="inches" id="tum">Tum</option> 
<input type="submit" value="Convert!"> 
</form> 

converter.php

<?php  
$number = isset($_POST['number']) ? $_POST['number'] : 0; 
$choose = isset($_POST['choose']) ? $_POST['choose'] : ''; 

switch ($choose) 
{ 
case 'meter': 
    $cm  = $number * 100; 
    $foot = $number * 3.2808; 
    $inches = $number * 39.370; 
    $Answer = 'Meters: '.$number.'<br />'. 
       'Cm: '.$cm.'<br />'. 
       'Foot: '.$foot.'<br />'. 
       'Inches: '.$inches; 

break; 

case 'cm': 
    $meter = $number/100; 
    $foot = $number * 0.032808; 
    $inches = $number * 0.39370; 
    $Answer = 'Cm: '.$cm.'<br />'. 
       'Meters: '.$number.'<br />'.    
       'Foot: '.$foot.'<br />'. 
       'Inches: '.$inches; 
break; 

case 'foot': 
    $meter = $number/3.2808; 
    $cm  = $number/0.032808; 
    $inches = $number * 12.000; 
    $Answer = 'Foot: '.$foot.'<br />'. 
       'Meters: '.$number.'<br />'. 
       'Cm: '.$cm.'<br />'.    
       'Inches: '.$inches; 
break; 

case 'inches': 
    $meter = $number/39.370; 
    $cm  = $number/0.39370; 
    $foot = $number/12.000; 
    $Answer = 'Inches: '.$inches.'<br />'. 
       'Foot: '.$foot.'<br />'. 
       'Meters: '.$number.'<br />'. 
       'Cm: '.$cm; 
break; 
default: 
    $Answer = ''; 
break; 
} 

echo $Answer; 
?> 
+0

ничего себе! Спасибо! Могу ли я спросить, почему вы написали этот код в начале файла PHP: $ number = isset ($ _ POST ['number'])?$ _POST ['number']: 0; $ select = isset ($ _ POST ['choose'])? $ _POST ['choose']: ''; – Mordor

+0

Необходимо проверить, установлена ​​ли переменная. Это лучший способ получить переменные POST/GET. –

+0

. Редактирование приведенного выше ответа с помощью вычисления –

0

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

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

<form action="converter.php" method="post"> 
    <fieldset><legend>Select Your Input Type and Value</legend> 
    <input type="number" name="inputNumber" step="any" value="" /> 
    <select name="inputFormat"> 
     <optgroup name="Choose"> 
     <option value="meter" id="meter">Meter</option> 
     <option value="cm" id="cm">Cm</option> 
     <option value="foot" id="fot">Fot</option> 
     <option value="inches" id="tum">Tum</option> 
     </optgroup> 
    </select> 
    </fieldset> 

    <fieldset><legend>Select your Output Type</legend> 
    <select name="outputFormat"> 
     <optgroup name="Choose"> 
     <option value="meter" id="meter">Meter</option> 
     <option value="cm" id="cm">Cm</option> 
     <option value="foot" id="fot">Fot</option> 
     <option value="inches" id="tum">Tum</option> 
     </optgroup> 
    </select> 
    </fieldset>  

    <input type="submit" name="submitForm" value="Convert!" /> 
</form> 



<?php 
$outputNumber=0; 
$inputNumber = (float)$_POST['inputNumber']; 
$inputFormat = $_POST['inputFormat']; 
$outputFormat = $_POST['outputFormat']; 

    switch($inputFormat){ 
    case "meter": 

     switch ($outputFormat){ 
     case "meter": $outputNumber = $inputNumber;break;   //METER TO METER 
     case "cm": $outputNumber = $inputNumber*100;break;   //METER TO CM 
     case "foot": $outputNumber = $inputNumber*3.2808399;break; //METER TO FT 
     case "inches": $outputNumber = $inputNumber*39.3700787;break;//METER TO INCHES 

     } 

    break; 

    case "cm": 

    //ADD CONVERSION SWITCH IN HERE 
    break; 

    case "foot": 

    //ADD CONVERSION SWITCH IN HERE 
    break; 

    case "inches": 

    //ADD CONVERSION SWITCH IN HERE 
    break; 
    } 


echo $outputNumber; 

?> 
Смежные вопросы