Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][PHP] automatyczne wypełnienie pola zmienną
dentopolis
post
Post #1





Grupa: Zarejestrowani
Postów: 252
Pomógł: 0
Dołączył: 14.08.2016

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


wpisując w formularzu dane pacjenta podaję jego pesel. chciałbym aby w momencie naciśnięcia TAB i przejścia do kolejnego pola data urodzenia została ona już uzupełniona zmienną $dataurodzenia którą potrafię pobrać. nie mogę znaleźć w sieci odpowiedniego kodu a ponieważ zupełnie nie znam się na javascript, mimo że pewnie nie jest to skomplikowany kod, nie potrafiłbym go zmodyfikować.

formularz
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 809
Pomógł: 1828
Dołączył: 11.03.2014

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


A po co pobierasz datę urodzenia ze zmiennej $dataurodzenia? Datę urodzenia masz w PESEL, więc stąd możesz ją wyciągnąć. Ale sprowadza się to też do tego, że to pole daty w formularzu nie jest potrzebne.
Go to the top of the page
+Quote Post
dentopolis
post
Post #3





Grupa: Zarejestrowani
Postów: 252
Pomógł: 0
Dołączył: 14.08.2016

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


kilka godzin temu inni zasugerowali żeby jednak umieścić w bazie pole daty urodzenia i płci wyciąganych z numeru pesel podczas wprowadzania danych żeby potem było mniej przetwarzania. temat
Go to the top of the page
+Quote Post
trueblue
post
Post #4





Grupa: Zarejestrowani
Postów: 6 809
Pomógł: 1828
Dołączył: 11.03.2014

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


A co ma baza do formularza?
Go to the top of the page
+Quote Post
dentopolis
post
Post #5





Grupa: Zarejestrowani
Postów: 252
Pomógł: 0
Dołączył: 14.08.2016

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


pole daty jest w formularzu potrzebne gdy pacjent jest obcokrajowcem i nie ma nr pesel. wtedy płeć i datę ur wypełniam ręcznie.
Go to the top of the page
+Quote Post
trueblue
post
Post #6





Grupa: Zarejestrowani
Postów: 6 809
Pomógł: 1828
Dołączył: 11.03.2014

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


Dla Polaka wyliczaj więc datę urodzenia z podanego PESEL. W trakcie uzupełniania formularza datę zostawiasz pustą, a wyliczasz ją przed zapisem do bazy. Ewentualnie rozbuduj formularz tak, aby w zależności od pola wyboru Polak/Obcokrajowiec, wyświetlało się tylko jedno z pól.
Go to the top of the page
+Quote Post
dentopolis
post
Post #7





Grupa: Zarejestrowani
Postów: 252
Pomógł: 0
Dołączył: 14.08.2016

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


okay tylko że tą metodą wpisuję pesel, w tle tworzona jest zmienna dataurodzenia i płeć, są one zapisane do bazy. a ja chciałbym je widzieć już na etapie wprowadzania właśnie po naciśnięciu TAB.

Ten post edytował dentopolis 2.05.2017, 20:49:06
Go to the top of the page
+Quote Post
trueblue
post
Post #8





Grupa: Zarejestrowani
Postów: 6 809
Pomógł: 1828
Dołączył: 11.03.2014

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


Do tego JavaScript.
https://www.google.com/search?q=javascript+...urodzenia+pesel
Płeć jeszcze łatwiej znajdziesz. Sprawdź kod klasy, którą podawałeś w innym temacie lub "dokumentację" PESEL.
Go to the top of the page
+Quote Post
dentopolis
post
Post #9





Grupa: Zarejestrowani
Postów: 252
Pomógł: 0
Dołączył: 14.08.2016

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


działa mi wypisywanie płci i osobno roku, miesiąca i dnia, ale jak połączyć w jednym polu datę urodzenia?

document.getElementById("rok").value = rok;
document.getElementById("miesiac").value = miesiac;
document.getElementById("dzien").value = dzien;
document.getElementById("plec").value = plec;
document.getElementById("dzien").value - document.getElementById("miesiac").value = dataurodzenia;

obecnie mój kod wygląda tak jak poniżej i działa orginalne automatyczne wypełnienie pól input rokiem, miesiącem, dniem, płcią, ale mimo że moim polom nadaję id='plec' to nie wyświetla jej. a druga sprawa to jak w jednym polu input wyświetlić datę urodzenia np.d-m-Y

(IMG:http://www.dentopolis.org/fill.png)



<script type="text/javascript">
function ParsePesel(id)
{
var s = document.getElementById(id).value;
//Sprawdź długość, musi być 11 znaków
if (SetError(s.length != 11))
return;

//Sprawdź, czy wszystkie znaki to cyfry
var aInt = new Array();
for (i=0;i<11; i++)
{
aInt[i] = parseInt(s.substring(i,i+1));
if (isNaN(aInt[i]))
{
SetError(1);
return;
}
}

//Sprawdź sumę kontrolną
var wagi = [1,3,7,9,1,3,7,9,1,3,1];
var sum=0;
for (i=0;i<11;i++)
sum+=wagi[i]*aInt[i];
if (SetError((sum%10)!=0))
return;

//Policz rok z uwzględnieniem XIX, XXI, XXII i XXIII wieku
var rok = 1900+aInt[0]*10+aInt[1];
if (aInt[2]>=2 && aInt[2]<8)
rok+=Math.floor(aInt[2]/2)*100;
if (aInt[2]>=8)
rok-=100;

var miesiac = (aInt[2]%2)*10+aInt[3];
var dzien = aInt[4]*10+aInt[5];

//Sprawdź poprawność daty urodzenia
if (SetError(!checkDate(dzien,miesiac,rok)))
return;
var plec = (aInt[9]%2==1)?"M":"K";

//Uzupełnij pola wchodzące w skład numeru PESEL
document.getElementById("rok").value = rok;
document.getElementById("miesiac").value = miesiac;
document.getElementById("dzien").value = dzien;
document.getElementById("plec").value = plec;
}
function SetError?{
document.getElementById("hasError").style.visibility=(c?"visible":"hidden");
return c;
}
function checkDate(d,m,y)
{
var dt = new Date(y,m-1,d);
return dt.getDate()==d &&
dt.getMonth()==m-1 &&
dt.getFullYear()==y;
}
</script>
</head>
<body onload="ParsePesel('pesel');">


<table>
<tr><td>PESEL:</td><td><input id="pesel" type="text" onkeyup="ParsePesel('pesel');"/>
<span id="hasError" style="color:Red;" title="Nieprawidłowy numer PESEL">*</span></td></tr>
<tr><td>Rok:</td><td><input id="rok" type="text"/></td></tr>
<tr><td>Miesiac:</td><td><input id="miesiac" type="text"/></td></tr>
<tr><td>Dzień:</td><td><input id="dzien" type="text"/></td></tr>
<tr><td>Płeć:</td><td><input id="plec" type="text"/></td></tr>
</table>

<form name='diagram' method='GET' action='zapiszpacjenta.php'>

<table border="1" width="100%">
<tr>
<td align='center'><b>id</b></td>
<td align='center'><b>nazwisko</b></td>
<td align='center'><b>imie</b></td>
<td align='center'><b>pesel</b></td>
<td align='center'><b>urodziny</b></td>
<td align='center'><b>płeć</b></td>
<td align='center'><b>ulica</b></td>
<td align='center'><b>kod</b></td>
<td align='center'><b>miasto</b></td>
<td align='center'><b>telefon</b></td>
</tr>
  1. <?php
  2. $servername = "localhost";
  3. $username = "root";
  4. $password = "";
  5. $dbname = "gabinet";
  6.  
  7. $conn = new mysqli($servername, $username, $password, $dbname);
  8.  
  9. mysqli_set_charset( $conn, 'utf8' );
  10. if ($conn->connect_error) {
  11. die("Connection failed: " . $conn->connect_error);
  12. }
  13.  
  14. $sql = "SELECT MAX(id) AS ostatni FROM pacjenci";
  15. $result = $conn->query($sql);
  16.  
  17. if ($result->num_rows > 0) {
  18. while($row = $result->fetch_assoc()) {
  19.  
  20. $ostatni=$row["ostatni"]+1;
  21.  
  22.  
  23. echo "<tr>";
  24. echo "<td align='center'><input type='text' name='id' value='$ostatni' size='2'></td>";
  25. echo "<td align='center'><input type='text' name='nazwisko' value='' size='20'></td>";
  26. echo "<td align='center'><input type='text' name='imie' value='' size='15'></td>";
  27. echo "<td align='center'><input type='text' name='pesel' size='11'></td>";
  28. echo "<td align='center'><input type='text' name='urodziny' id='urodziny' size='10'></td>";
  29. echo "<td align='center'><input type='text' name='plec' id='plec' size='1'></td>";
  30. echo "<td align='center'><input type='text' name='ulica' value='' size='15'></td>";
  31. echo "<td align='center'><input type='text' name='kod' value='' size='4'></td>";
  32. echo "<td align='center'><input type='text' name='miasto' value='' size='15'></td>";
  33. echo "<td align='center'><input type='text' name='telefon' value='' size='10'></td>";
  34. echo "</tr>";
  35.  
  36. }
  37.  
  38. echo "</table>";
  39.  
  40. } else {
  41. echo "";
  42. }
  43.  
  44. ?>


<br/>
<button type='submit'>zapisz</button>
</form>




czy ktoś mógłby mi pomóc w rozwiązaniu powyższego problemu?

potrzebuję jedynie tej poziomej tabeli w której pacjent podaje nazwisko, imię, pesel...i automatycznie wypełniana jes pełna data urodzenia dd-mm-rrrr. formularz na górze jest kodem orginalnym.

Ten post edytował dentopolis 16.05.2017, 13:31:26
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.12.2025 - 23:25