Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP] automatyczne wypełnienie pola zmienną
Forum PHP.pl > Forum > Przedszkole
dentopolis
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
trueblue
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.
dentopolis
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
trueblue
A co ma baza do formularza?
dentopolis
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.
trueblue
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.
dentopolis
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.
trueblue
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.
dentopolis
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





<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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.