2016-04-21 1 views
1

Я начинаю с PHP, и я подумал, что было бы неплохо изучить его, начав простые проекты. Я решил начать с простого конвертера.Преобразователь блока php и html/выбор значения опции

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

Идея такова: пользователь вводит значение и исходный блок, а затем я хочу напечатать значение в нескольких разных единицах. Это то, что я до сих пор:

HTML

<div id="converter"> 
    <h2>Unit converter</h2> 
    Convert from: 
    <form method="post" action="" class="inline"> 

    <select name="unit"> 
     <option value="km">kilometers</option> 
     <option value="m">meters</option> 
     <option value="dm">decimeters</option> 
     <option value="cm">centimeters</option> 
     <option value="mm">milimeters</option> 
    </select> 

    <input type="text" name="value" placeholder="input value here" autocomplete="off" required>  
    <input type="submit" value="convert"/> 

    </form> 

<?php 
    $unit = isset($_POST['unit']) ? $_POST['unit'] : false; 
    $value = isset($_POST['value']) ? $_POST['value'] : false; 

    /* the above two lines are copied from a solution for something similar 
that I found online. I know that they're not doing what I would like to do. 
I want $unit to hold the unit the user chose, and $value to hold the value the 
user put in. */ 

?> 

</div> 

Так в идеале я хочу, чтобы иметь возможность вводить, например, 20, выберите «метров», нажмите кнопку конвертировать, а затем распечатать «0,02 км, 200 дсм, 2000 см, 20000 мм ".

В настоящее время я застрял в этом: как я могу проверить, какой «исходный блок» выбран? Другими словами, как я могу проверить, выбрал ли пользователь километры или метры или какое-либо другое устройство и соответственно отредактировать мой вывод?

И: как я могу распечатать выход?

Я знаю, что мне нужно как-то использовать $ _POST, но я не знаю, как это сделать.

Еще раз, я не прошу код (хотя некоторые из них были бы хороши;)), но для указателя. Я прочитал книгу о PHP, но это не очень полезно.

Заранее спасибо. Извините, если я допустил какие-либо ошибки, английский не является моим первым языком.

ответ

0

, исходящий от штамповочного PHP-кодера, чтобы делать эти вещи с помощью php, становится устаревшим и устаревшим просто потому, что вся страница должна перезаряжаться, когда пользователь нажимает кнопку submit. Вышеупомянутое может быть сделано намного проще с помощью приложения AngularJS. Здесь веб-сайт - это SPA (Single Pages Apps), где страница не требует перезагрузки и результаты мгновенные.

Прежде чем вы начнете изучать AngularJS, вам понадобятся хорошие знания Javascript и концепции MVC (Model, View Controller). Но оно того стоит!

Я предлагаю w3schools для базового курса крушения. Но googling всегда будет получать много ценных ресурсов.

Но вернемся к ответу на ваш вопрос:

Ваше имя страницы должно быть index.php, так что ваша форма может отправлять сообщения в index.php через атрибут действия:

<form method="post" action="index.php" class="inline"> 

Тогда вы можете Выполните следующие действия, чтобы увидеть, что была размещена на странице, это будет печатать все переменные в хорошем читаемый дисплей (и легко закомментировать):

echo "<pre>";print_r($_REQUEST);echo "</pre>"; 

Тогда вы увидите $ _REQUEST [ 'U nit '] должен предоставить вам необходимую вам переменную, а затем использовать оператор switch для выполнения отдельных вычетов для каждого выбора.

+0

Огромное спасибо! Именно то, что я искал, спасибо! И да, я вижу, как использование PHP для этого устарело, но для меня это просто для меня :) Я обязательно посмотрю на AngularJS, спасибо за подсказку! И еще раз, за ​​вашу помощь! – chili

0

Вы говорите о чем-то подобном?:

<div id="converter"> 
<h2>Unit converter</h2> 
Convert from: 
<form method="post" action="" class="inline"> 

<select name="unit"> 
    <option value="km">kilometers</option> 
    <option value="m">meters</option> 
    <option value="dm">decimeters</option> 
    <option value="cm">centimeters</option> 
    <option value="mm">milimeters</option> 
</select> 

<input type="text" name="value" placeholder="input value here" autocomplete="off" required>  
<input type="submit" value="convert"/> 

</form> 

<?php 

$unit = isset($_POST['unit']) ? $_POST['unit'] : false; 
$value = isset($_POST['value']) ? $_POST['value'] : false; 

$metrics = ["mm" => 1, "cm"=> 10, "dm" => 100, "m" => 1000, "km" => 1000000]; 
$template_value = $value*$metrics[$unit]; 
$values_for_print = []; 
foreach($metrics as $key=>$value){ 
    echo $key.": ".$template_value/$value."; "; 
} 
?> 
</div> 

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

  • Нет связанных вопросов^_^