Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Konwersja string na boolean zamiast int
pawelekkk123
post 4.02.2021, 19:41:32
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 3.02.2021

Ostrzeżenie: (0%)
-----


Cześć, potrzebuję pomocy. Mianowicie jeżeli konwertuję string na int, to nie zamienia się on w int tylko boolean. Nie wiem o co chodzi, jestem świeży w temacie sad.gif Z góry dziękuję!

Kod wygląda nastepująco, pobieram promptem string i chcę go przekonwertować na int, ponieważ w dalszej fazie będzie mi potrzebny $numer

function prompt($prompt_msg){
echo("<script language='javascript'> let answer = prompt('".$prompt_msg."'); </script>");

$answer = "<script language='javascript'> document.write(answer); </script>";

return($answer);
}
$prompt_msg = "Podaj numer";
$numer = prompt($prompt_msg);
echo gettype($numer);
echo $numer;
$numer = settype($numer, "int");
echo gettype($numer);
echo $numer;

Ten post edytował pawelekkk123 4.02.2021, 19:57:27
Go to the top of the page
+Quote Post
gino
post 4.02.2021, 21:13:27
Post #2





Grupa: Zarejestrowani
Postów: 319
Pomógł: 52
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


Ponieważ funkcja settype zwraca true jeżeli zamiana się powiedzie i false jeśli nie. Jak robisz echo tej funkcji to wpisze Ci co zwraca.
Go to the top of the page
+Quote Post
pawelekkk123
post 4.02.2021, 22:29:38
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 3.02.2021

Ostrzeżenie: (0%)
-----


Dziękuję, tylko w takim razie pojawia się taki problem, że gdy mój string ma np. wartość 2 i zamieniłem go na typ int, to wartość nie jest równa 2 tylko 0


Ten post edytował pawelekkk123 4.02.2021, 22:33:33
Go to the top of the page
+Quote Post
trueblue
post 4.02.2021, 23:03:15
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Błędem jest na pewno próba przypisania wartości z JavaScript do zmiennej w PHP (4 linia w kodzie).


--------------------
Go to the top of the page
+Quote Post
gino
post 4.02.2021, 23:04:01
Post #5





Grupa: Zarejestrowani
Postów: 319
Pomógł: 52
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


Eee no co Ty, robię taki kod:
Kod
$number = '2';
settype($number,'int');
echo gettype($number);
echo $number;


i ładnie zmienia mi dwójkę na int.

Zamiast settype() możesz zrobić rzutowanie bezpośrednie:
Kod
$number = '123456';
$number = (int)$number;


Ten post edytował gino 4.02.2021, 23:04:24
Go to the top of the page
+Quote Post
trueblue
post 4.02.2021, 23:11:15
Post #6





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Tak jak napisałem w moim wcześniejszym poście - robisz błąd logiczny.
Zmienna $numer ma zawsze wartość: "<script language='javascript'> document.write(answer); </script>", więc możesz wpisywać w prompcie JS cokolwiek.


--------------------
Go to the top of the page
+Quote Post
pawelekkk123
post 4.02.2021, 23:28:16
Post #7





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 3.02.2021

Ostrzeżenie: (0%)
-----


Dziękuję za informacje. Wiecie może czy jest jakaś szansa, żeby pobrać tą cyfrę w jakiś sposób promptem lub jakkolwiek inaczej i wpisać ją do zmiennej $numer, a następnie skonwertować na int?
Go to the top of the page
+Quote Post
gino
post 5.02.2021, 00:06:02
Post #8





Grupa: Zarejestrowani
Postów: 319
Pomógł: 52
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


Nie wiem jak wywołujesz tą funkcję, ale całość można zrobić w js, nie musisz kombinować i łączyć php i js, bo o błędy logiczne nie trudno. W js masz parseInt() do zamiany string na intiger.
Go to the top of the page
+Quote Post
pawelekkk123
post 5.02.2021, 00:26:33
Post #9





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 3.02.2021

Ostrzeżenie: (0%)
-----


Tylko potrzebuję czegoś takiego, że przed wejściem na stronę podaję cyfrę i jest ona mi następnie potrzebna jako int w kolejnym etapie. Ewentualnie pobrać ją w jakiś innym sposób, tylko nie mam pomysłu niestety. Jeśli ktoś miałby jakieś rozwiązanie, to jestem w stanie zapłacić za chwilę poświęconego czasu.
Go to the top of the page
+Quote Post
gino
post 5.02.2021, 01:13:38
Post #10





Grupa: Zarejestrowani
Postów: 319
Pomógł: 52
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


Przypisanie zmiennej js do php jest problematyczne bo php wykonuje się na serwerze a js lokalnie. Twoja funkcja zwraca cały ciąg znaków o którym pisał trueblue i dlatego funkcja settype czy (int) zwróci 0 czyli false (niepowodzenie konwersji typu). Umieść na stronie formularz z polem input i tą wartość z tego formularza prześlij i obrób z czystym php.

Ten post edytował gino 5.02.2021, 01:15:28
Go to the top of the page
+Quote Post
pawelekkk123
post 5.02.2021, 08:33:48
Post #11





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 3.02.2021

Ostrzeżenie: (0%)
-----


Jak zrobię w formularzu inputa pobiorę i prześlę wartość, to wiesz może jak tę wartość mam wpisać do zmiennej w php?
Go to the top of the page
+Quote Post
viking
post 5.02.2021, 08:35:38
Post #12





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Jest coś takiego jak manual, warto go czasami przeczytać: https://www.php.net/manual/en/language.vari...es.external.php


--------------------
Go to the top of the page
+Quote Post
pawelekkk123
post 5.02.2021, 15:38:20
Post #13





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 3.02.2021

Ostrzeżenie: (0%)
-----


Dziękuję, pomógł mi ten link smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 02:35