10/10/2018, 09:53

[HELP] Form sửa dữ liệu

Làm sao khi click vào nút Sửa thì nút Radio được chọn đúng giới tính được đã lưu trong csdl nhỉ!?

Trang hiện thị sửa giới tính: admin_form_sua.php

[html]

.............

<form name="frm_edit" action="admin_sua.php?user=<?php echo $record["username"]; ?>" method="post">
<table width="550" border="0" cellpadding="0" cellspacing="4" align="center">
<tr>
<td width="120" align="left"><strong>Giới tính:</strong></td>
<td align="left">
<input type="radio" name="radiogt" value="<?php echo $record["gender"]; ?>" checked="checked"/>Nam &nbsp;&nbsp;
<input type="radio" name="radiogt" value="<?php echo $record["gender"]; ?>"/>Nữ
</td>
</tr>

............

[/html]

Trang xử lý sửa (cập nhật thông tin vừa sửa): admin_sua.php


[html]

.............

$userEdit = $_GET["user"];
$gtinh =$_POST["radiogt"];
$sql = "UPDATE user SET gender="$gtinh" WHERE username="$userEdit"";

............

[/html]

Thực hiện lệnh UPDATE thì nó có lưu giới tính mới vào csdl nhưng khi sửa thì nút Radio chưa được chọn đúng giới tính trong csdl
~> Làm sao để form sửa nút Radio hiện đúng như giới tính được lưu trong csdl nhỉ!?
Mong các bạn giúp mình^^
nokida viết 11:54 ngày 10/10/2018
giả sử bạn quy định Nam là 0 và nữ là 1, khi đó bạn sử
<input type="radio" name="radiogt" value="0" <?php if ($record["gender"] == 0) echo 'checked="checked"'; ?>/>Nam &nbsp;&nbsp;
<input type="radio" name="radiogt" value="1" <?php if ($record["gender"] == 1) echo 'checked="checked"'; ?>/>Nữ
hoichobiet2212 viết 12:04 ngày 10/10/2018
Được gửi bởi nokida
giả sử bạn quy định Nam là 0 và nữ là 1, khi đó bạn sử
<input type="radio" name="radiogt" value="0" <?php if ($record["gender"] == 0) echo 'checked="checked"'; ?>/>Nam &nbsp;&nbsp;
<input type="radio" name="radiogt" value="1" <?php if ($record["gender"] == 1) echo 'checked="checked"'; ?>/>Nữ
Cái này chỉ đúng được một nữa bạn ơi.

* Nó chỉ đúng khi ta sửa 1 bản ghi nào đó rồi ~> Cập nhật ~> Lần sau vào Sửa lại thì nó đúng.

* Chứ những thành viên nào vừa đăng ký xong hoặc đã đăng ký, rồi mình vào sửa thì nó ko có tác dụng.

Các bạn giúp mình với. Thank!
nokida viết 12:05 ngày 10/10/2018
Mình nghĩ, bạn xem lại chỗ <?php if ($record["gender"] == 0) echo 'checked="checked"'; ?>
Bạn thử sửa thành <?php if (!isset($record["gender"]) || $record["gender"] == 0) echo 'checked="checked"'; ?>. (1)
Trước đoạn code trên bạn thử echo giá trị của $record["gender"] ra xem, rồi phụ thuộc vào đó, mà xét các điều kiện ở (1) hợp lý.
thuyduongcd viết 11:54 ngày 10/10/2018
Trước khi hiển thị form, thêm đoạn code load thông tin từ database lên, cho nó vào mảng $record.
hoichobiet2212 viết 12:00 ngày 10/10/2018
Được gửi bởi thuyduongcd
Trước khi hiển thị form, thêm đoạn code load thông tin từ database lên, cho nó vào mảng $record.
Thì ở trang admin_form_sua.php mình đã echo biến gender trong csdl ra rồi mà, như vậy ko đúng àh thuyduong
thuyduongcd viết 12:09 ngày 10/10/2018
Giả sử thông tin đã được truy vấn vào mảng $record và trường gender có giá trị là "Nam" hoặc "Nữ"
Code:
<input type="radio" name="radiogt" value="Nam" <?php echo $record['gender']=="Nam"?checked="checked":""; ?> />Nam
<input type="radio" name="radiogt" value="Nữ" <?php echo $record['gender']=="Nữ"?checked="checked":""; ?> />Nữ
hoichobiet2212 viết 12:02 ngày 10/10/2018
Được gửi bởi nokida
giả sử bạn quy định Nam là 0 và nữ là 1, khi đó bạn sử
<input type="radio" name="radiogt" value="0" <?php if ($record["gender"] == 0) echo 'checked="checked"'; ?>/>Nam &nbsp;&nbsp;
<input type="radio" name="radiogt" value="1" <?php if ($record["gender"] == 1) echo 'checked="checked"'; ?>/>Nữ
Ok mình đã xem lại bài của mình và làm được theo cách này, giá trị 1, 0 sửa lại thành nam, nu đúng như value của form nhập thì đã hiển thị đúng.
Cảm ơn bạn nokida và thuyduong đã nhiệt tình giúp mình!
Bài liên quan
0