Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][MySQL][PHP][JS] Problem z dodaniem do bazy danych formularza, Jak za pomocą input type="hidden", js i formularza html dodać
krzyzaq
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 4.09.2008

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


Witajcie,

mam, pewnie dla wielu mały, problem o nast naturze.
1. mam listę, w której to jedno z pól jest typu option/select i wygląda następująco:
  1. echo '<select id="StatusOpt'.$res['Nr'].'" name="StatusOpt" width="10" onChange="offerZmStanu(\'StatusOpt'.$res['Nr'].'\', '.$res['Nr'].')">';
  2. if ($OrdStat[0] == "Otwarte") echo '<option name="Otwarte" SELECTED>Otwarte</option>'; else echo '<option name="Otwarte" >Otwarte</option>';
  3. if ($OrdStat[0] == "Zrealizowane") echo '<option name="Zrealizowane" SELECTED>Zrealiz.</option>'; else echo '<option name="Zrealizowane">Zrealiz.</option>';
  4. if ($OrdStat[0] == "Zablokowane") echo '<option name="Zablokowane" SELECTED>Zabl.</option>'; else echo '<option name="Zablokowane">Zabl.</option>';
  5. if ($OrdStat[0] === false) echo '<option name="" SELECTED>Brak Zam.</option>';
  6. echo '</select>';


2. do tego utworzyłem formularz z polem ukrytym w którym po zmianie wartości ww listy zapisuje się zapytanie mysql i formularz dodaje sie do bazy:
  1. function offerZmStanu(Id, Nr)
  2. {
  3. var id = Id;
  4. var nr = Nr;
  5. //alert(id + ' ' + nr);
  6. //var id = Id;
  7. var state = document.getElementById(id).value;
  8. //alert(state);
  9. if(state == 'Zrealiz.')
  10. state = 'Zrealizowane';
  11.  
  12. if(state == 'Zabl.')
  13. state = 'Zablokowane';
  14. document.getElementById('UpdStat').value = "update tzamowienia set Status = '" + state + "' where offerId = " + nr;
  15. // document.getElementById('UpdStat').value = "update toffers set offerStat = 'NAktywny' Where Id = '" + id + "'";
  16. //alert("update toffers set offerStat = 'Aktywny' Where Id = '" + id + "'");
  17. document.getElementById('FOfferStat').submit();
  18. }

Problem jest antury takiej, że update się nie robi, gdyż w poleceniu wysyłanym do bd PHP dorzuca ukosniki przed warością pola Status i zamiast:
  1. UPDATE tzamowienia SET STATUS = 'Otwarte' WHERE offerId = 147

próbuje wykonać:
  1. UPDATE tzamowienia SET STATUS = \'Otwarte\' where offerId = 147

a przynajmniej tak wyświetla
  1. var_dump($POST)


czy jest jakiś sposób żeby to ogarnąć w zaprezentowany powyżej sposób czy muszę przepisać kod i kontrolując zawartość zmiennej formularza ukrytego po submicie z poziomu php zmienić wartość pola w bd?

pozdrawiam
Marcin
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Zacznijmy od tego, że js nie powinno wysyłać ci żadnych zapytań....js może wysyłać dane do zapytań, ale nie zapytania....

Druga sprawa dotycząca błędu: wyłącz MAGIC_QUOTES na serwerze.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
PrinceOfPersia
post
Post #3





Grupa: Zarejestrowani
Postów: 717
Pomógł: 120
Dołączył: 18.04.2009

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


Może lepiej żeby nie wyłączał, przesyłając ajaxem niezabezpieczone zapytanie SQL, to otwarcie się na ataki. Tak jak powiedział mój przedmówca - wyślij do serwera same dane i rodzaj akcji - a po stronie serwera wygeneruj zapytanie.



--------------------
Go to the top of the page
+Quote Post
krzyzaq
post
Post #4





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 4.09.2008

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


Dobrze, obszedłem problem 'tradycyjnie', czyli normalnie wysyłam formularz jak Pan Bóg przykazał i na serwerze po stronie PHP składam zapytanko do BD aby zmienić to jedno pole w tabeli. Problem jest tylko taki, że teraz po zmianie listy ze statusami trzeba odświerzyć stronkę, żeby zaktualizowało status na ten zmieniony, js nie miał tego problemu.

z tym ajax-em to kolego PronceOfPersia trochę przesada, ja mam z nim wspólnego tyle co tegoroczna wiosna z tym co za oknem smile.gif
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Problem jest tylko taki, że teraz po zmianie listy ze statusami trzeba odświerzyć stronkę, żeby zaktualizowało status na ten zmieniony
Skoro wysyłasz forma, to i strona się przeładowuje, więc nie wiem jaki masz problem.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
PrinceOfPersia
post
Post #6





Grupa: Zarejestrowani
Postów: 717
Pomógł: 120
Dołączył: 18.04.2009

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


Cytat
z tym ajax-em to kolego PronceOfPersia trochę przesada, ja mam z nim wspólnego tyle co tegoroczna wiosna z tym co za oknem

Sorry, mój błąd, nie spojrzałem dokładnie na metodę wysyłania. Ale to szczegół w tym momencie, bo formularze tak samo trzeba zabezpieczać.


--------------------
Go to the top of the page
+Quote Post
krzyzaq
post
Post #7





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 4.09.2008

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


mój błąd również, za daleko wkeiłem odwołanie do update smile.gif

dziękuję Wam i pozdrawiam

p.s. znacie jakis dobry kurs ajax-a tak by the way? albo pythona - pod kątem www?
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 Aktualny czas: 21.08.2025 - 12:50