Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [JavaScript] zdalne checked :)
shpaque
post 10.01.2018, 15:15:08
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


  1. document.getElementsByName('type').value('<?php echo $u['type']; ?>').checked = true;


chodzi mi o to zeby podczas ladowania pobral wartosc value dla (radio, pozniej select i checkbox i tak dalej) i "kliknal" tam gdzie trzeba checked
Go to the top of the page
+Quote Post
nospor
post 10.01.2018, 15:21:18
Post #2





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




I jak sie ma do tego kod, ktory pokazales?


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

"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
shpaque
post 10.01.2018, 15:25:39
Post #3





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


dobra to tak

  1. $(document).ready(function() {
  2. document.getElementsByName('type').value('<?php echo $u['type']; ?>').checked = true;
  3. });


co nie dziala?

wczesniej jest:

  1. <div class="form-group">
  2. <label>Forma uczestnictwa w konferencji*</label><br>
  3. <label class="radio-inline"><input type="radio" name="type" value="active" onclick="showActive()"><b>Uczestnik Aktywny</b> (czynny)</label>
  4. <label class="radio-inline"><input type="radio" name="type" value="passive" onclick="hideActive()"><b>Uczestnik Bierny</b> (słuchacz)</label>
  5. <label class="radio-inline"><input type="radio" name="type" value="admin" onclick="hideActive()">Administrator</label>
  6. </div>
Go to the top of the page
+Quote Post
Pyton_000
post 10.01.2018, 15:26:32
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


A co mówi konsola developerska przeglądarki?
Go to the top of the page
+Quote Post
shpaque
post 10.01.2018, 15:27:37
Post #5





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


document.getElementsByName(...).value is not a function

Go to the top of the page
+Quote Post
nospor
post 10.01.2018, 15:29:46
Post #6





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




I jak widzisz w komunikacie bledu getElementsByName() nie posiada funkcji value()

A czemu nie zrobisz tego jak czlowiek i w php podczas generowania tego html nie ustawisz wlasciwego checked?


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

"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
shpaque
post 10.01.2018, 15:34:08
Post #7





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


zrobilem tak na samym poczatku, ale nic to nie daje - bo mimo, ze checked jest wtedy faktycznie klikniete, nie uruchamia sie funkcja onclck przy tym checknietym elemencie
Go to the top of the page
+Quote Post
Pyton_000
post 10.01.2018, 15:37:08
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


https://www.w3schools.com/jsref/met_doc_get...mentsbyname.asp
Go to the top of the page
+Quote Post
shpaque
post 10.01.2018, 15:48:44
Post #9





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


dobra wrocilem do najleposzej metody czyli php - jak teraz ucurchomic te funkcje pod kadym ifem?

  1. <?php
  2. if ($u['type'] === "active")
  3. {
  4. echo '
  5. <label class="radio-inline"><input type="radio" name="type" value="active" onclick="showActive()" checked><b>Uczestnik Aktywny</b> (czynny)</label>
  6. <label class="radio-inline"><input type="radio" name="type" value="passive" onclick="hideActive()"><b>Uczestnik Bierny</b> (słuchacz)</label>
  7. <label class="radio-inline"><input type="radio" name="type" value="admin" onclick="hideActive()">Administrator</label>
  8. ';
  9. echo "<script>showActive();</script>";
  10. }
  11. if ($u['type'] === "passive")
  12. {
  13. echo '
  14. <label class="radio-inline"><input type="radio" name="type" value="active" onclick="showActive()"><b>Uczestnik Aktywny</b> (czynny)</label>
  15. <label class="radio-inline"><input type="radio" name="type" value="passive" onclick="hideActive()" checked><b>Uczestnik Bierny</b> (słuchacz)</label>
  16. <label class="radio-inline"><input type="radio" name="type" value="admin" onclick="hideActive()">Administrator</label>
  17. ';
  18. echo "<script>hideActive();</script>";
  19. }
  20. if ($u['type'] === "admin")
  21. {
  22. echo '
  23. <label class="radio-inline"><input type="radio" name="type" value="active" onclick="showActive()"><b>Uczestnik Aktywny</b> (czynny)</label>
  24. <label class="radio-inline"><input type="radio" name="type" value="passive" onclick="hideActive()"><b>Uczestnik Bierny</b> (słuchacz)</label>
  25. <label class="radio-inline"><input type="radio" name="type" value="admin" onclick="hideActive()" checked>Administrator</label>
  26. ';
  27. echo "<script>hideActive();</script>";
  28. }
  29. ?>
Go to the top of the page
+Quote Post
nospor
post 10.01.2018, 15:55:19
Post #10





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




Tak na marginesie:
poczytaj na google: jak nie duplikowac kodu

co do problemu
A czy przypadkiem funkcje ala showActive() nie dzialaja na kodzie html, ktory jest wygenerowany troszke nizej? jesli tak to chyba nie oczekujesz ze zadzaialaja?

ALbo przenies to na sam koniec html albo obejmij kodem js, ktory spowoduje ze sie odpala po zaladowaniu calego html


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

"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
shpaque
post 10.01.2018, 16:00:18
Post #11





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


wszystkie funkcje w skrypcie sa zdefiniowane przed kodem wlasnie...
Go to the top of the page
+Quote Post
SmokAnalog
post 10.01.2018, 16:04:23
Post #12





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Poza tym trochę bez sensu robić albo showActive(), albo hideActive() w zależności od warunku. Czyli ci aktywni użytkownicy nie są domyślnie ani widoczni, ani niewidoczni? Czyli jacy? Półprzezroczyści? tongue.gif
Go to the top of the page
+Quote Post
shpaque
post 10.01.2018, 16:06:13
Post #13





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


  1. function showActive()
  2. {
  3. $('#row-active').fadeIn(400);
  4. $('#session, #sposob').prop('required', true);
  5. }
  6.  
  7. function hideActive()
  8. {
  9. $('#row-active').fadeOut(400);
  10. $('#session, #sposob').prop('required', false);
  11. }


nie po prostu dla aktywnych pojawiaja sie dodatkowe pola do wypelnienia
Go to the top of the page
+Quote Post
nospor
post 10.01.2018, 16:07:55
Post #14





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




Cytat
wszystkie funkcje w skrypcie sa zdefiniowane przed kodem wlasnie...
Nie mowie o funkcjach. Mowie o kodzie html na ktorym te funkcje pracuja - w tym wypadku twoja tabela z userami


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

"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
SmokAnalog
post 10.01.2018, 16:08:24
Post #15





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Ale masz jakiś stan początkowy w tym HTML-u, więc jedno z tych wywołań w momencie załadowania strony jest bez sensu.
Go to the top of the page
+Quote Post
shpaque
post 10.01.2018, 16:25:06
Post #16





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


dobra tam juz jade php - wszystko zrobilem poza tymi duzymi rzeczami - to jak to zrobic zeby tyle kodu nie kopiowac?

  1. <select class="form-control text-center" type="text" id="session" name="session">
  2. <option selected disabled value="">wybierz sesję</option>
  3. <option value="s1">Sesja I: Pre i postnatalne procesy rozwojowe i adaptacyjne w ustroju</option>
  4. <option value="s2">Sesja II: Komórkowe i sygnalizacyjne transformacje w fizjopatologii nowotworów</option>
  5. <option value="s3">Sesja III: Diagnostyka i terapia w gastroenterologii</option>
  6. <option value="s4">Sesja IV: Genetyczne i epigenetyczne czynniki kształtujące układowe funkcjonowanie ustroju</option>
  7. <option value="s5">Sesja V: Stan odżywienia jako wykładnik zdrowia i podatności na choroby</option>
  8. <option value="s6">Sesja VI: Fizjologia i patofizjologia centralnego układu nerwowego</option>
  9. <option value="s7">Sesja VII: Substancje pochodzenia naturalnego jako czynniki prawidłowego funkcjonowania organizmu</option>
  10. <option value="s8">Sesja VIII: Badania funkcjonalne komórek &#8211; metody i techniki</option>
  11. <option value="s9">Sesja IX: Fizjologia zwierząt bezkręgowych lub Fizjologia bezkręgowców</option>
  12. <option value="s10">Sesja X: Fizjologia bakterii</option>
  13. </select>
Go to the top of the page
+Quote Post
phpion
post 10.01.2018, 20:51:35
Post #17





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Poczytaj o tablicach i pętlach (foreach).
Go to the top of the page
+Quote Post
shpaque
post 10.01.2018, 22:30:41
Post #18





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


wracamy do tasiemca. smile.gif Teraz opcja "update"

mam tak
  1. $usertoupdate = $_POST['email'];
  2. $columns = ['type', 'title', 'name', 'surname', 'sex', 'status', 'email', 'password', 'phone', 'college', 'organ', 'city', 'section', 'sectiontype', 'invoice', 'company', 'address', 'code', 'ccity', 'nip', 'cphone', 'payd'];
  3. $users = array_map(
  4. function ($record) use ($columns){
  5. return array_combine($columns, str_getcsv($record, '|'));
  6. },
  7. file('./../db/users.csv')
  8. );
  9.  
  10. $us = array_filter($users, function ($user) use ($usertoedit) {return $user['email'] === $usertoupdate;});
  11. $u = reset($us);


jak w ten desen zrobic tak zeby updateowal mi jednego klienta - czyli jedna tablice w ktorej znajdzie ten sam email
Go to the top of the page
+Quote Post
SmokAnalog
post 10.01.2018, 22:58:50
Post #19





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Rozumiem, że będziesz zapisywał z powrotem do pliku .csv, tak?

Zamień proszę nazwy na bardziej czytelne w tym momencie. Ułatwisz zadanie sobie i nam też. Żadnych $u, $us itd. Kolega wyżej już Cię o to prosił. Na Twoim miejscu to bym w ogóle zrobił coś na taki kształt z tymi nazwami:

  1. $emailOfUserToUpdate = $_POST['email']; // zobacz jaka czytelna nazwa zmiennej
  2.  
  3. // ...
  4.  
  5. $userToUpdate = array_filter($users, function ($user) use ($emailOfUserToUpdate) {return $user['email'] === $emailOfUserToUpdate;})[0]; // i z dwóch zmiennych robi się jedna


Zauważ, że zamieniłem też reset na zerowy indeks [0]. Osobiście nie lubię funkcji reset, bo przez jej schizofreniczną naturę jej nazwa jest myląca.

Popraw to proszę i wróć z pytaniem.
Go to the top of the page
+Quote Post
shpaque
post 11.01.2018, 02:23:13
Post #20





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


ok mam (w miedzyczasie musialem troche warunkow porobic z formularza)

  1. <?php
  2. ini_set('display_errors', 1);
  3.  
  4. $successPage = './admin/admin.php';
  5.  
  6. if ($_SERVER['REQUEST_METHOD'] == 'POST')
  7. {
  8. $action = $_POST['action'];
  9. if ($action === 'update')
  10. {
  11. $newtype = $_POST['type'];
  12. $newtitle = $_POST['title'];
  13. $newname = $_POST['name'];
  14. $newsurname = $_POST['surname'];
  15.  
  16. if ($_POST['sex'] === 'kobieta')
  17. {
  18. $newsex = 'k';
  19. }
  20. else if ($_POST['sex'] === 'mężczyzna')
  21. {
  22. $newsex = 'm';
  23. }
  24.  
  25. $newstatus = $_POST['status'];
  26. $newemail = $_POST['email'];
  27. $newpassword = $_POST['password'];
  28. $newphone = $_POST['phone'];
  29. $newcollege = $_POST['school'];
  30. $neworgan = $_POST['organ'];
  31. $newcity = $_POST['city'];
  32.  
  33. if ($newtype === 'admin')
  34. {
  35. $newsection = '';
  36. $newsectiontype = '';
  37. $newinvoice = 'nie';
  38. $newcompany = '';
  39. $newaddress = '';
  40. $newcode = '';
  41. $newccity = '';
  42. $newnip = '';
  43. $newcphone = '';
  44. $newpayd = '';
  45. }
  46. else
  47. {
  48. if ($newtype === 'active')
  49. {
  50. $newsection = $_POST['session'];
  51. $newsectiontype = $_POST['sposob'];
  52. }
  53. else if ($newtype === 'passive')
  54. {
  55. $newsection = '';
  56. $newsectiontype = '';
  57. }
  58.  
  59. if (isset($_POST['check-fv']))
  60. {
  61. $newinvoice = 'tak';
  62. $newcompany = $_POST['company'];
  63. $newaddress = $_POST['company-address'];
  64. $newcode = $_POST['company-postcode'];
  65. $newccity = $_POST['company-city'];
  66. $newnip = $_POST['company-nip'];
  67.  
  68. if (isset($_POST['company-phone']))
  69. {
  70. $newcphone = $_POST['company-phone'];
  71. }
  72. else
  73. {
  74. $newcphone = '';
  75. }
  76. }
  77. else
  78. {
  79. $newinvoice = 'nie';
  80. $newcompany = '';
  81. $newaddress = '';
  82. $newcode = '';
  83. $newccity = '';
  84. $newnip = '';
  85. $newcphone = '';
  86. }
  87.  
  88. if (isset($_POST['payd']))
  89. {
  90. $newpayd = $_POST['payd'];
  91. }
  92. else
  93. {
  94. $newpayd = '';
  95. }
  96. }
  97.  
  98. $columns = ['type', 'title', 'name', 'surname', 'sex', 'status', 'email', 'password', 'phone', 'college', 'organ', 'city', 'section', 'sectiontype', 'invoice', 'company', 'address', 'code', 'ccity', 'nip', 'cphone', 'payd'];
  99. $users = array_map(
  100. function ($record) use ($columns){
  101. return array_combine($columns, str_getcsv($record, '|'));
  102. },
  103. file('./../db/users.csv')
  104. );
  105. $emailOfUserToUpdate = $newemail;
  106. $userToUpdate = array_filter($users, function ($user) use ($emailOfUserToUpdate) {return $user['email'] === $emailOfUserToUpdate;})[0];
  107. print_r($userToUpdate);
  108. }
  109. }
  110. //header('Location: '.$successPage);
  111. //exit;
  112. ?>


dokladnie tak zamierzam zrobic czyli zaraz zapisac wszystko co wyczytal z pliku, ale w miesce tablicy ze znalezionym mailem wpisac wszystkie zmienne $new...

gorzej zem i wywala undefinied

  1. Notice: Undefined offset: 0 in /home/smusic/ftp/_x-kaf/php/update.php on line 107


dałem zamiast [0] to [1] i jest - teraz co zrobic zeby zapisac plik z updateowanymi zmiennymi?

  1. $columns = ['type', 'title', 'name', 'surname', 'sex', 'status', 'email', 'password', 'phone', 'college', 'organ', 'city', 'section', 'sectiontype', 'invoice', 'company', 'address', 'code', 'ccity', 'nip', 'cphone', 'payd'];
  2. $users = array_map(
  3. function ($record) use ($columns){
  4. return array_combine($columns, str_getcsv($record, '|'));
  5. },
  6. file('./../db/users.csv')
  7. );
  8. $emailOfUserToUpdate = $newemail;
  9. $userToUpdate = array_filter($users, function ($user) use ($emailOfUserToUpdate) {return $user['email'] === $emailOfUserToUpdate;})[1];
  10. $userUpdate = array('type' => $newtype, 'title' => $newtitle, 'name' => $newname, 'surname' => $newsurname, 'sex' => $newsex, 'status' => $newstatus, 'email' => $newemail, 'password' => $newpassword, 'phone' => $newphone, 'college' => $newcollege, 'organ' => $neworgan, 'city' => $newcity, 'section' => $newsection, 'sectiontype' => $newsectiontype, 'invoice' => $newinvoice, 'company' => $newcompany, 'address' => $newaddress, 'code' => $newcode, 'ccity' => $newccity, 'nip' => $newnip, 'cphone' => $newcphone, 'payd' => $newpayd);
  11. $newUsers = array_filter($users, function ($user) use ($emailOfUserToUpdate) {return $user['email'] !== $emailOfUserToUpdate;});
  12.  
  13. $updatedUsers = array_filter(array_merge($newUsers, $userUpdate)); //to nie dziala jak powinno
  14. $done = array_replace($users, $updatedUsers); // to rowniez
  15.  
  16. print_r($done);
  17.  
  18. i tu standardowo fwrite i tak dalej czy jest taki sposob jak pobranie z pliku?


Ten post edytował shpaque 11.01.2018, 03:06:19
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 19.06.2025 - 01:06