Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Добрый день , может кто нибудь поможет в одном вопросе . На сайте https://inertiajs.com/forms нашел такой пример
import { useState } from 'react'
import { router } from '@inertiajs/react'
export default function Edit() {
const [values, setValues] = useState({
first_name: "",
last_name: "",
email: "",
})
function handleChange(e) {
const key = e.target.id;
const value = e.target.value
setValues(values => ({
...values,
[key]: value,
}))
}
function handleSubmit(e) {
e.preventDefault()
router.post('/users', values)
}
return (
<form onSubmit={handleSubmit}>
<label htmlFor="first_name">First name:</label>
<input id="first_name" value={values.first_name} onChange={handleChange} />
<label htmlFor="last_name">Last name:</label>
<input id="last_name" value={values.last_name} onChange={handleChange} />
<label htmlFor="email">Email:</label>
<input id="email" value={values.email} onChange={handleChange} />
<button type="submit">Submit</button>
</form>
)
}
Он великолепно работает с input , но вот моего ума пока не хватает , чтобы переделать его для использования с select . Вот мой пример .
import {Select} from "flowbite-react";
import {router} from "@inertiajs/react";
import {useState} from "react";
export default function Layout() {
const [values, setValues] = useState({
page: "",
})
function handleChange(e) {
const key = e.target.id;
const value = e.target.value
setValues(values => ({
...values,
[key]: value,
}))
router.get('products', values)
}
return (
<>
<div className="max-w-[6rem]">
<form>
<Select onChange={handleChange}
defaultValue={"20"}
id="per_page">
<option>20</option>
<option>40</option>
<option>60</option>
<option>80</option>
</Select>
</form>
</div>
</>
);
}
Проблема в том , что на сервере константа page всегда Null , а id="per_page" передается с опозданием , т.е передает предыдущее значение . Если кто поможет с доработкой примера , заранее благодарен. Спасибо.
Не в сети
Мне интересно, здесь отвечает кто нибудь?
Или вопрос настолько тупой , что нет ответа .
Переделал пока так , вроде как и работает , Прошу хоть покритиковать.
import {Select} from "flowbite-react";
import {router} from "@inertiajs/react";
export default function PageCount({location}) {
function handleChange(e) {
const key = e.target.id;
const value = e.target.value
const values={[key]: value};
router.get(`${location}`,values);
}
return (
<>
<div className="max-w-[10rem]">
<form>
<Select onChange={handleChange}
id="per_page">
<option>Select per page</option>
<option>20</option>
<option>40</option>
<option>60</option>
<option>80</option>
<option>100</option>
</Select>
</form>
</div>
</>
);
}
Не в сети
Страницы 1