Как сделать вариант для Цельсия или Фаренгейта с переключателями - PullRequest
0 голосов
/ 10 мая 2019

Я создал проект Laravel, который сначала показывает вам комбинированный список с месяцами, затем он отправляет вас на страницу с выбранным месяцем, на этой странице он показывает статистику погоды за этот месяц, моя задача - добавить 2 переключателя, тот, который при нажатии показывает статистику в градусах Цельсия, а другой при нажатии показывает градусы по Фаренгейту,

Если честно, я не знаю, как подойти к этому вопросу.

Я смотрел в Интернете, как бы вы перешли с Цельсия на Фаренгейт, но я действительно не нашел ничего интересного, чтобы помочь мне.

это страница, с которой начинается

<!DOCTYPE html> <!-- selecteer.php -->
<html lang="nl">
    <head> <!-- VIEW -->
        <meta charset="UTF-8">
        <title>Temperaturen</title>
    </head>
    <body>
        <form action="overzicht" method="post">
            Maand: <select name="maand">
            <option value="1">Januari</option>
            <option value="2">Februari</option>
            <option value="3">Maart</option>
            <option value="4">April</option>
            </select>
            <button type="submit">Overzicht</button>
            <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
        </form>
    </body>
</html>

вы выбираете месяц (месяцы указаны по-голландски), а затем, когда вы нажимаете на кнопку, вы переходите к «Temperatuur.php»

<?php # app\Temperatuur.php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class Temperatuur extends Model
{
 static public function getData($maand = 0)
 {
 $dagtemperaturen = DB::table('dagmeting')->where('maandnr','=',$maand)->get();
 return $dagtemperaturen;
 }
}


на этой странице показана таблица, заполненная статистикой температуры выбранного месяца, и месяц вверху.


<?php # app\Http\Controllers\TemperatuurController.php
 // CONTROLLER
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Temperatuur;
use Illuminate\Http\Request;
class TemperatuurController extends Controller
{
 public function getIndex()
 {
 return view('selecteer');
 }
 public function overzicht(Request $request)
 {
 $maand = $request->input('maand');
 $metingen= Temperatuur::getData($maand);
 return view('overzicht', array('maand'=>$maand, 'metingen'=>$metingen));
 }
}




^^ это контроллер для temperatuur.php

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

1 Ответ

0 голосов
/ 10 мая 2019

@ Sjoerd,

Я попытаюсь помочь вам в этом концептуально -

  1. Вам нужно обновить ваш метод get temperature data, чтобы он принимал входной параметр, который мог былибо по Цельсию или по Фаренгейту, вместе с названием города.
  2. Код в этом методе получит температуру для этого города (предположим, что базовый расчет дан в градусах Цельсия).
    2.1. Если в этот метод будет передан градус Фаренгейта, вы получите только преобразовать температуру в градусы Фаренгейта и вернуть значение.
  3. При загрузке страницы вы можете вызвать этот метод и передать метрику температуры по умолчанию.
    3.1. Вы можете установить метрику загрузки страницы по умолчанию в градусах Цельсия и позволить пользователю выбрать Фаренгейтметрика из переключателя, если он / она желает измениться.
    3.2. (Будущее) Вы можете потенциально сохранить этот выбор пользователя в виде файла cookie браузера, поэтому при следующей загрузке этой страницы вы автоматически отобразитетемпература в метрике, которую пользователь выбрал последним.
  4. Если пользователь обновляет переключатель, чтобы выбрать Фаренгейт, вам нужно только вызвать метод (объясненный в пункте 2) выше и передать «Фаренгейт» методу какпараметр.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...