Skocz do zawartości
Pecetowicz Forum komputerowe

Number Field. You must enter a numeric value. | Invision Community


Przejdź do rozwiązania Rozwiązane przez Weak.,

Rekomendowane odpowiedzi

  • Premium

Cześć. Otóż napisałem sobie możliwość edycji danych w aplikacji poprzez formularz ($form). Przy kliknięciu zapis przy polu o typie "Number" wyświetla się informacja "You must enter a numeric value.". Próbowałem ustawiać wartości min, max lecz dalej to samo. Invision Community 4.6

	protected function editAccount()
	{
		$id = \IPS\Request::i()->id;
		$database = \IPS\myapp\Application::dbConnect();

		$result = $database->select( '*', 'users', [ 'id = ?', $id ] )->first();

		// Form
		\IPS\Output::i()->title = 'Edycja itemu o ID: '. $id;

		$form = new \IPS\Helpers\Form;
		$form->add( new \IPS\Helpers\Form\Number('TEST 1', $result['test1'], true, [ 'min' => '1', 'max' => '100' ]) );
		$form->add( new \IPS\Helpers\Form\Number('TEST 2', $result['test2'], true) );

		if ($values = $form->values()) {
			$database->update( 'users', [
				'test1' => $values['TEST 1'],
				'test2' => $values['TEST 2'],
			], [ 'id=?', $id ] );

			\IPS\Output::i()->redirect( \IPS\Http\Url::internal( 'app=myapp&module=global&controller=test' ), 'myapp_accountSaved' );
		}

		\IPS\Output::i()->output = $form;
	}
Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Ekspert
2 godziny temu, RiV napisał:

$result['test1']

Sprawdź co zwraca ta zmienna. Tak samo z test2.

2 godziny temu, RiV napisał:

\IPS\Helpers\Form\Number('TEST 1'

Nie wpisuj tutaj żadnych spacji. To są klucze z tłumaczeń.

  • Lubię to! 2
  • Super 1
Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Premium
3 godziny temu, aXenDev napisał:

Sprawdź co zwraca ta zmienna. Tak samo z test2.

Nie wpisuj tutaj żadnych spacji. To są klucze z tłumaczeń.

Zwraca mi wartość numeryczną (1).
image.thumb.png.2e13ac3ac20840ef9d7530019c386f53.png

Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Ekspert

Masz sprawdzić jaką wartość zwraca, a nie wysyłaj nam bazy, bo jest nam niepotrzebna.

var_dump($result['test1']);exit;

Stawiam, że wyniki masz w array, więc czeka Cię pętla foreach, albo zmień sobie 

$result = $database->select( 'test1, test2', 'users', [ 'id = ?', $id ] )->first();
  • Lubię to! 2
Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Premium
Godzinę temu, Weak. napisał:

Masz sprawdzić jaką wartość zwraca, a nie wysyłaj nam bazy, bo jest nam niepotrzebna.


var_dump($result['test1']);exit;

Stawiam, że wyniki masz w array, więc czeka Cię pętla foreach, albo zmień sobie 


$result = $database->select( 'test1, test2', 'users', [ 'id = ?', $id ] )->first();

Wartości zwraca mi dobrze, bo wyświetlają się w polach tekstowych. Problem jest tylko z zapisem nowo wprowadzonych danych w formularzu.

Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Premium
20 minut temu, Weak. napisał:

Skoro zwraca Ci dobrze, to zrób ten var_dump i pokaż screena.

Po użyciu var_dump zwraca mi: int(1)

  • Wściekły 1
Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Ekspert
  • Rozwiązanie

Zmień sobie to coś:

new \IPS\Helpers\Form\Number('TEST 1'

na;

new \IPS\Helpers\Form\Number('TEST_1'

 

  • Lubię to! 2
  • Super 1
Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Premium

Dzięki. Problem rozwiązany. Robiłem w takiej formie tymczasowo żeby potem zmienić na wartości tłumaczenia. Kto by pomyślał że to powoduje błąd.

  • Lubię to! 1
Odnośnik do odpowiedzi
Udostępnij na innych stronach

Problem wciąż nierozwiązany? Dodaj swoją odpowiedź

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto. Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...