10/10/2018, 10:49

Submit và giữ giá trị trên form

Chào các bạn. Mình có 1 textfield và 1 button. Mình muốn khi người dùng submit thì trên form sẽ in ra giá trị người dùng vừa nhập cùng với các giá trị trước đó. Mình đã viết được code thực hiện điều này, nhưng khi nhấn nút Back trên FF xuất hiện thông báo: “To display this page, Firefox must send information that will repeat any action (such as a search or order confirmation) that was performed earlier.” Đồng thời FF không quay lại như trước khi nhấn Submit nữa, mong các bạn chỉ giúp. Mình đang cần gấp. Cám ơn nhiều!
Mình cần code bằng PHP vì dữ liệu người dùng nhập vào sẽ được xử lý qua csdl.
Code của mình:
<form name="form1" method="post" action="">
<label>
<input name="them" type="text" id="them">
</label>
<label>
<input type="submit" name="Submit" value="Submit">
</label>
</form>
<?php
session_start();
$_SESSION['noidung'].=$_POST['them'];
echo $_SESSION['noidung'];
?>
ví dụ khi người dùng lần lượt ấn 1,2,3,4 rồi submit thì trên màn hình hiển thị 1,2,3,4 tuy nhiên khi nhấn nút back thì form hiển thị 1,2,3,4,3 không đúng ý của mình.
vnntech.com viết 13:02 ngày 10/10/2018
cái đó chỉ có một cách là tạo nút back từ màn hình xác nhận dữ liệu khi bấm vào đó thì submit ngược lại cái form nhập liệu ban đầu thôi.
thuyduongcd viết 13:00 ngày 10/10/2018
Hoặc là dùng GET hoặc clear history để không thể Back lại được
ramang viết 12:55 ngày 10/10/2018
Hic, mình muốn người dùng nhấn nút back để có thể quay lại chỉnh sửa dữ liệu vừa nhập mà. Vậy có cách nào khác không vậy. Tức là ấn 1 rồi submit trên form sẽ xuất hiện 1, sau đó ấn 2 rồi submit trên form sẽ xuất hiện 1 2. Nếu nhấn nút back thì trên form sẽ xuất hiện 1.(Không dùng javascript vì dữ liệu đó mình còn xử lý qua csdl. Xin cảm ơn
thuyduongcd viết 13:02 ngày 10/10/2018
Không hiểu bạn muốn người ta back lại làm gì? Thay vì yêu cầu người ta back lại sao không chủ động đưa người ta đến trang trước đó, sẵn đó kèm theo những giá trị hiện thời làm giá trị mặc định cho trang tiếp theo
Ví dụ:
Code:
header("Location: http://domain.name/reg.php?field1=abc&field2=xyz
ramang viết 13:04 ngày 10/10/2018
Chào bạn thuyduongcd. Mình muốn back lại để chỉnh sửa dữ liệu vừa nhập. Ví dụ khi trên form đang hiển thị 1,2. mình muốn nhấn nút back(để form hiển thị 1) sau đó nhấn 3 rồi submit. Trên form sẽ hiển thị 1,3.
"không chủ động đưa người ta đến trang trước đó, sẵn đó kèm theo những giá trị hiện thời làm giá trị mặc định cho trang tiếp theo" Mình chưa rõ ý của bạn lắm bạn có thể giải thích thêm được không? code chi tiết càng tôt. Thông cảm mình mới học PHP được hơn 1 tháng thôi.
Còn vấn đề này nữa mong bạn giải đáp. Giả sử trên trang web mình có 2 form. Mình chỉ muốn submit form 1 mà không submit cả trang có được không? Vì trong trang web mình khai báo 1 mảng. sau khi gán giá trị rồi submit form thì tất cả phần tử trước đó của mảng đều về rỗng. với lại thông báo ““To display this page, Firefox must send information that ...“ có cách nào không cho nó hiển thị không vậy.
honnhienh viết 12:53 ngày 10/10/2018
Không hiểu ý tưởng của bác luôn.
ramang viết 12:55 ngày 10/10/2018
Hic, nó là như thế này. Mình có 1 textfield và 1 button. Mình muốn khi người dùng nhập 1 rồi submit, trên trang web sẽ hiển thị 1. Tiếp đó nhập 2 rồi submit sẽ hiển thị 1 2. Nếu muốn sửa giá trị 2 vừa nhập thì nhấn nút back trên trình duyệt sau đó nhập 3 rồi submit để trên trang web sẽ hiển thị 1 3. Chỉ đơn giản vậy thôi. Nhưng mình nghĩ mãi không ra. Làm ơn chỉ giúp. Đang cần gấp!!!
jdkhang viết 13:01 ngày 10/10/2018
Được gửi bởi ramang
Hic, nó là như thế này. Mình có 1 textfield và 1 button. Mình muốn khi người dùng nhập 1 rồi submit, trên trang web sẽ hiển thị 1. Tiếp đó nhập 2 rồi submit sẽ hiển thị 1 2. Nếu muốn sửa giá trị 2 vừa nhập thì nhấn nút back trên trình duyệt sau đó nhập 3 rồi submit để trên trang web sẽ hiển thị 1 3. Chỉ đơn giản vậy thôi. Nhưng mình nghĩ mãi không ra. Làm ơn chỉ giúp. Đang cần gấp!!!
Vất vả quá, mình làm thế này, bạn xem thử có hợp không nhé:

file index.php
PHP Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
html xmlns="http://www.w3.org/1999/xhtml">
  <
head>
    <
title>PHPSubmitSimple Ajax</title>
    <
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <
script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            $('#submitData').click(function(){
                $.post('exec_data.php', {input_txt: $('#inputTxt').val()}, function(data){
                    $('#report').html(data);
                });
                return false;
            });
        });
    </script>
  </head>
  <body>
    <form id="frmData" action="">
        <input type="text" name="txt" id="inputTxt" />
        <input type="submit" value="submit" id="submitData" />
    </form>
    <p id="report"></p>
  </body>
</html> 
file exec_data.php
Code:
<?php
	echo 'Import values: ' . $_POST['input_txt'] . ' to dababase successful.';
	/*	
	$sql = "INSERT INTO table....";
	$result = mysql_query($sql)	;
	
	if ($result) {
		echo 'Successful';
	} else {
		echo 'Fail';
	}
	*/	
?>
vietdragons.com viết 13:01 ngày 10/10/2018
khổ quá, chắc ý bạn đó là cái kiểu xài cookie lưu lại mấy cái vừa nhập vào input hoặc textarea đó mà
Bài liên quan
0