Thêm trường nhập vào nút bấm PHP

This post is with regards to handling forms that have more than one submit button.

________số 8_______

Normally the 'value' attribute of the HTML 'input' tag (in this case "Delete") that creates the submit button can be accessed in PHP after post like this:

$_POST['action_button'];
?>

We of course use the 'name' of the button as an index into the $_POST array.

This works fine, except when we want to pass more information with the click of this particular button.

Imagine a scenario where you're dealing with user management in some administrative interface.  You are presented with a list of user names queried from a database and wish to add a "Delete" and "Modify" button next to each of the names in the list.  Naturally the 'value' of our buttons in the HTML form that we want to display will be "Delete" and "Modify" since that's what we want to appear on the buttons' faceplates.

Both buttons (Modify and Delete) will be named "action_button" since that's what we want to index the $_POST array with.  In other words, the 'name' of the buttons along cannot carry any uniquely identifying information if we want to process them systematically after submit. Since these buttons will exist for every user in the list, we need some further way to distinguish them, so that we know for which user one of the buttons has been pressed.

Using arrays is the way to go.  Assuming that we know the unique numerical identifier of each user, such as their primary key from the database, and we DON'T wish to protect that number from the public, we can make the 'action_button' into an array and use the user's unique numerical identifier as a key in this array.

Suppose we have an HTML form with a submit button specified like this:0

Suppose we have an HTML form with a submit button specified like this:1

Suppose we have an HTML form with a submit button specified like this:2

Suppose we have an HTML form with a submit button specified like this:3

Suppose we have an HTML form with a submit button specified like this:4

Suppose we have an HTML form with a submit button specified like this:5

Suppose we have an HTML form with a submit button specified like this:6

Suppose we have an HTML form with a submit button specified like this:7

Chào buổi chiều những người yêu thích của tôi. Có một cái đơn giản cho tất cả các bạn (ít nhất tôi đã được một người bạn không biết JS nói rằng nó rất dễ)

 

Vì vậy, tôi có một biểu mẫu có tên và số lần người đó xuất hiện trên bảng điểm danh. Ví dụ

 

Chris      Số lượng. 10

Amy        Số lượng. 24

Josh        Số lượng. 3

 

Điều tôi cần làm là giúp người dùng có thể nhấp vào nút và một trường mới xuất hiện. Trường mới cần có cấu trúc giống như dữ liệu trên. Có nghĩa là tên, nhãn số lượng và trường đầu vào để nhập một số giá trị số lượng. Tuy nhiên, đối với các trường này, trường tên sẽ được để trống để người dùng nhập tên của mình. tên không có trong danh sách tên hiện tại của chúng tôi. Vì vậy, mỗi hàng trong biểu mẫu trên sẽ có 3 div nổi ở bên trái (chỉ để giữ cho mọi thứ đồng nhất, tôi đã sử dụng các lớp). Nếu tôi là người dùng, tôi sẽ thấy một biểu mẫu yêu cầu tôi nhập tên mới, sau đó ở bên phải của từ số lượng, tôi sẽ có tùy chọn nhập giá trị vào hộp văn bản

 

Câu hỏi của tôi là. Có cách nào để nhấp vào một nút duy nhất và javascript tạo chính xác những gì tôi đã định dạng không?

 

<div class="names">
     <input type="text" name="I don't know what would need to be here" value="I dont know what would need to be here" />
     <input type="hidden" name="name_labels[]" value="I don't know what would need to be here" />
</div>

<div class="quantity">
     Quantity
</div>

<div class="quantity_field">
     <input type="text" name="quantity[Whatever went in the value of the hidden input] />
</div>

 

Ai đó có thể giúp tôi với điều này?

 

Trân trọng,

Bl4ck Maj1k

Liên kết để bình luận
Chia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

Thêm trường nhập vào nút bấm PHP

đào tẩu

Đăng ngày 3 tháng 6 năm 2011

đào tẩu

  • Thêm trường nhập vào nút bấm PHP

  • Các thành viên
    • 1. 5k
  • Vị trí. PA

    • Chia sẻ

Đăng ngày 3 tháng 6 năm 2011

bạn có thể sử dụng một sự kiện onclick. khi sự kiện được kích hoạt, nó sẽ thực thi một chức năng sử dụng tài liệu. write() để thêm dữ liệu mà bạn muốn thêm

Liên kết để bình luận
Chia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

Thêm trường nhập vào nút bấm PHP

Bl4ckMaj1k

Đăng ngày 3 tháng 6 năm 2011

Bl4ckMaj1k

  • Thêm trường nhập vào nút bấm PHP

  • Các thành viên
    • 93

  • Tác giả

    • Chia sẻ

Đăng ngày 3 tháng 6 năm 2011

bạn có thể sử dụng một sự kiện onclick. khi sự kiện được kích hoạt, nó sẽ thực thi một chức năng sử dụng tài liệu. write() để thêm dữ liệu mà bạn muốn thêm

 

Tôi xin lỗi, tôi thực sự không có ý định trở thành 'NewB' hay 'Leech' hay bất cứ thứ gì bọn trẻ đang gọi chúng ngày nay. nhưng tôi thực sự không biết làm thế nào để tạo ra một sự kiện onclick ghi tất cả dữ liệu. Sắp xếp lý do tôi đăng ở đây. hy vọng có thể tôi có thể giúp một tay trong bộ phận đó. Tôi khá am hiểu về PHP nhưng khi nói đến JS thì tôi thực sự không biết gì. Tôi hiện đang đọc một trong những cuốn sách của O'Reilly về viết mã bằng Javascript nhưng tiếc là tôi phải đọc sách PHP trước. Vì vậy, tôi chỉ ở Chương 2 (eek. ). Bất kỳ trợ giúp sẽ được đánh giá rất cao và cảm ơn một lần nữa

 

Bl4ck Maj1k

Liên kết để bình luận
Chia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

Thêm trường nhập vào nút bấm PHP
Thêm trường nhập vào nút bấm PHP

PFMaBiSmAd

Đăng ngày 3 tháng 6 năm 2011

PFMaBiSmAd

  • Thêm trường nhập vào nút bấm PHP
    Thêm trường nhập vào nút bấm PHP

  • cựu nhân viên
  • Thêm trường nhập vào nút bấm PHP
    • 16. 7k
  • Vị trí. Colorado, Hoa Kỳ. S. A

    • Chia sẻ

Đăng ngày 3 tháng 6 năm 2011

Bạn sẽ sử dụng tên trường mảng cho tất cả các trường (những trường mà trang của bạn tạo bằng dữ liệu hiện có và những trường được thêm động. ) tôi. e. tên="tên[]" và tên="số lượng[]". Tôi không hiểu tại sao bạn lại sử dụng trường ẩn

 

Mã thực tế để làm điều này sẽ giống như -

 

<script type="text/javascript">
function add_field(){
var max = 24; // total number of fields, adjust value as needed or for an unlimited number, just remove the test from the logic
var cont = document.getElementById('addhere'); // refer to the div
var numfields = cont.getElementsByTagName("input").length; // get number of input fields in the div
if(numfields < max){
	// create a div element
	var div1 = document.createElement('div');
	// Get template data
	div1.innerHTML = document.getElementById('fieldtpl').innerHTML;
	// append to div, so that template data becomes part of document
	document.getElementById('addhere').appendChild(div1);
} else {
	alert("You have reached the maximum number of fields\n that can be added at one time!");
}

}
</script>

<form method="post" action="formaction.php" >
    <div id="addhere">
	<div class="names">
		<input type="text" name="name[]" value="some existing name" />
	</div>
	<div class="quantity">
		Quantity
	</div>
	<div class="quantity_field">
		<input type="text" name="quantity[]" value="some existing qty"/>
	</div>
</div>
<a href="javascript:void(0);" onClick="add_field();">Click to add another name</a><br />
<input type="submit">
</form>
<!-- Template. This whole section will be added directly to working div above -->  
<div id="fieldtpl" style="display:none">
<div class="names">
	<input type="text" name="name[]" value="" />
</div>
<div class="quantity">
	Quantity
</div>
<div class="quantity_field">
	<input type="text" name="quantity[]" value="" />
</div>
</div>

 

Bằng cách sử dụng phương thức mẫu được hiển thị, bạn có thể dễ dàng sử dụng và tạo kiểu cho bất kỳ html nào mà không cần viết mã javascript cần thiết để tạo động từng phần tử tạo nên html đó

Liên kết để bình luận
Chia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

Thêm trường nhập vào nút bấm PHP

Bl4ckMaj1k

Đăng ngày 3 tháng 6 năm 2011

Bl4ckMaj1k

  • Thêm trường nhập vào nút bấm PHP

  • Các thành viên
    • 93

  • Tác giả

    • Chia sẻ

Đăng ngày 3 tháng 6 năm 2011

CHỈNH SỬA

 

giải quyết. Tôi gặp sự cố vùng chứa div. Tôi đã phải xem lại mã của bạn và tôi nhận thấy như sau

 

 

nội dung

 

<đóng Div>

 

 

 

Đơn đặt hàng của tôi đã hết trước đó. Tôi không hiểu rằng nút này không được đặt bên trong div chính. cho đến khi tôi nhận thấy bạn đang chạy một phương thức nối thêm trong JavaScript mà tôi cho rằng nó sẽ nối thêm mã html đó vào div mà bạn đã xác định là cha. rực rỡ. Tôi nóng lòng chờ đến ngày tôi hiểu Javascript nhiều như hiểu PHP, HTML và CSS. Là nó phức tạp hơn của một ngôn ngữ?

 

Nhìn chung, bạn thật tuyệt vời. Tôi thực sự đánh giá cao bạn và tất cả những người khác trên diễn đàn này, những người đã giúp tất cả chúng tôi 'Oober-Newbz' khi có điều gì đó mà chúng tôi không hiểu

 

Cảm ơn rất nhiều

Bl4ck Maj1k

Liên kết để bình luận
Chia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

Thêm trường nhập vào nút bấm PHP

Bl4ckMaj1k

Đăng ngày 3 tháng 6 năm 2011

Bl4ckMaj1k

  • Thêm trường nhập vào nút bấm PHP

  • Các thành viên
    • 93

  • Tác giả

    • Chia sẻ

Đăng ngày 3 tháng 6 năm 2011

Một câu hỏi cuối cùng

 

<form method="post" action="formaction.php" >
    <div id="addhere">
	<div class="names">
		<input type="text" name="name[]" value="some existing name" />
	</div>
	<div class="quantity">
		Quantity
	</div>
	<div class="quantity_field">
		<input type="text" name="quantity[]" value="some existing qty"/>
	</div>
</div>
<a href="javascript:void(0);" onClick="add_field();">Click to add another name</a><br />
<input type="submit">
</form>
<!-- Template. This whole section will be added directly to working div above -->  
<div id="fieldtpl" style="display:none">
<div class="names">
	<input type="text" name="name[]" value="" />
</div>
<div class="quantity">
	Quantity
</div>
<div class="quantity_field">
	<input type="text" name="quantity[]" value="" />
</div>
</div>

 

Nếu bạn để ý, Div đầu tiên có tùy chọn trường văn bản. Tôi muốn đó là giá trị tĩnh. Không phải là trường nhập liệu có thể nhập. Ví dụ

 

Chris

Amy

tom

 

Đó là những giá trị tĩnh. Họ đã có mặt trên bảng điểm danh của chúng tôi. Ví dụ, tôi có 10 cái tên hiện có trong danh sách của mình. Sau đó, tôi sử dụng các trường 'Khác' đó. Vấn đề là liên kết các giá trị với nhau. Làm cách nào để tạo một mảng cho 2 giá trị trường?

 

Chris    Số lượng

[]          []

 

Nó sẽ là $_POST['name']['quantity'] ??

Liên kết để bình luận
Chia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

Thêm trường nhập vào nút bấm PHP
Thêm trường nhập vào nút bấm PHP

PFMaBiSmAd

Đăng ngày 3 tháng 6 năm 2011

PFMaBiSmAd

  • Thêm trường nhập vào nút bấm PHP
    Thêm trường nhập vào nút bấm PHP

  • cựu nhân viên
  • Thêm trường nhập vào nút bấm PHP
    • 16. 7k
  • Vị trí. Colorado, Hoa Kỳ. S. A

    • Chia sẻ

Đăng ngày 3 tháng 6 năm 2011

Có hai cách để làm những gì bạn yêu cầu -

 

1) Use the readonly="readonly" attribute in the name field for the existing students.

 

2) Just display the name without it being an field and use the name or corresponding id as the index in the name="quantity[name or index goes here...]". In this case you would probably want the dynamically added fields to use a different name="" attributes (dname[] and dquantity[] in the following) to distinguish them from the existing 'static' field, something like -

 

<form method="post" action="formaction.php" >
<div id="addhere">
	<div class="names">
		some existing name
	</div>
	<div class="quantity">
		Quantity
	</div>
	<div class="quantity_field">
		<input type="text" name="quantity[123]" value="45" />
	</div>
</div>
<a href="javascript:void(0);" onClick="add_field();">Click to add another name</a><br />
<input type="submit">
</form>
<!-- Template. This whole section will be added directly to working div above -->  
<div id="fieldtpl" style="display:none">
<div class="names">
	<input type="text" name="dname[]" value="" />
</div>
<div class="quantity">
	Quantity
</div>
<div class="quantity_field">
	<input type="text" name="dquantity[]" />
</div>
</div>

 

Điều này sẽ gửi một mảng bài đăng như -

 

Array
(
    [quantity] => Array
        (
            [123] => 23 // the index is the id, the value is the quantity
        )

    [dname] => Array
        (
            [0] => A new name
        )

    [dquantity] => Array
        (
            [0] => 82
        )

)

Liên kết để bình luận
Chia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

Thêm trường nhập vào nút bấm PHP

Bl4ckMaj1k

Đăng ngày 3 tháng 6 năm 2011

Bl4ckMaj1k

  • Thêm trường nhập vào nút bấm PHP

  • Các thành viên
    • 93

  • Tác giả

    • Chia sẻ

Đăng ngày 3 tháng 6 năm 2011

Có hai cách để làm những gì bạn yêu cầu -

 

1) Use the readonly="readonly" attribute in the name field for the existing students.

 

2) Just display the name without it being an field and use the name or corresponding id as the index in the name="quantity[name or index goes here...]". In this case you would probably want the dynamically added fields to use a different name="" attributes (dname[] and dquantity[] in the following) to distinguish them from the existing 'static' field, something like -

 

<form method="post" action="formaction.php" >
<div id="addhere">
	<div class="names">
		some existing name
	</div>
	<div class="quantity">
		Quantity
	</div>
	<div class="quantity_field">
		<input type="text" name="quantity[123]" value="45" />
	</div>
</div>
<a href="javascript:void(0);" onClick="add_field();">Click to add another name</a><br />
<input type="submit">
</form>
<!-- Template. This whole section will be added directly to working div above -->  
<div id="fieldtpl" style="display:none">
<div class="names">
	<input type="text" name="dname[]" value="" />
</div>
<div class="quantity">
	Quantity
</div>
<div class="quantity_field">
	<input type="text" name="dquantity[]" />
</div>
</div>

 

Điều này sẽ gửi một mảng bài đăng như -

 

Array
(
    [quantity] => Array
        (
            [123] => 23 // the index is the id, the value is the quantity
        )

    [dname] => Array
        (
            [0] => A new name
        )

    [dquantity] => Array
        (
            [0] => 82
        )

)

 

Phương pháp 2 có vẻ tốt và đủ đơn giản để tôi sử dụng. Vì vậy, tôi chỉ cần chạy 2 chức năng foreach riêng biệt? . Nếu trường hợp này xảy ra, làm cách nào để cơ sở dữ liệu biết khi nào tên[] được liên kết với số lượng cụ thể đó[]. Xin lỗi nếu tôi làm bạn thất vọng nhưng quá trình này hoàn toàn mới đối với tôi. lol Tôi chỉ muốn chắc chắn rằng tôi hiểu những thứ này hoạt động như thế nào để tham khảo trong tương lai

Liên kết để bình luận
Chia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

Thêm trường nhập vào nút bấm PHP
Thêm trường nhập vào nút bấm PHP

PFMaBiSmAd

Đăng ngày 4 tháng 6 năm 2011

PFMaBiSmAd

  • Thêm trường nhập vào nút bấm PHP
    Thêm trường nhập vào nút bấm PHP

  • cựu nhân viên
  • Thêm trường nhập vào nút bấm PHP
    • 16. 7k
  • Vị trí. Colorado, Hoa Kỳ. S. A

    • Chia sẻ

Đăng ngày 4 tháng 6 năm 2011

biết khi nào tên[] được liên kết với số lượng cụ thể đó[]

 

Sử dụng vòng lặp foreach(){} để lặp lại mảng dname, nhận khóa key và giá trị. Sau đó, bên trong vòng lặp, sử dụng khóa đó để truy cập giá trị tương ứng từ mảng dquantity.

Liên kết để bình luận
Chia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

Thêm trường nhập vào nút bấm PHP

Bl4ckMaj1k

Đăng ngày 4 tháng 6 năm 2011

Bl4ckMaj1k

  • Thêm trường nhập vào nút bấm PHP

  • Các thành viên
    • 93

  • Tác giả

    • Chia sẻ

Đăng ngày 4 tháng 6 năm 2011

-(

 

Tôi vẫn gặp vấn đề với điều này. Chìa khóa mà bạn nói đến là gì? . Tôi thậm chí không biết nếu đó là biểu tượng phù hợp cho nó. Bạn có thể giải thích thêm một chút?

Liên kết để bình luận
Chia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

Thêm trường nhập vào nút bấm PHP
Thêm trường nhập vào nút bấm PHP

PFMaBiSmAd

Đăng ngày 4 tháng 6 năm 2011

PFMaBiSmAd

  • Thêm trường nhập vào nút bấm PHP
    Thêm trường nhập vào nút bấm PHP

  • cựu nhân viên
  • Thêm trường nhập vào nút bấm PHP
    • 16. 7k
  • Vị trí. Colorado, Hoa Kỳ. S. A

    • Chia sẻ

Đăng ngày 4 tháng 6 năm 2011

Xem cú pháp thứ hai được đề cập trong tài liệu - http. //us2. php. net/thủ công/vi/cấu trúc điều khiển. cho mỗi. php

Làm cách nào để thêm các trường đầu vào một cách linh hoạt khi nhấp vào nút trong PHP?

Bước1. Tạo biểu mẫu với nút Thêm trường. trong chỉ mục. php, chúng tôi sẽ Tạo nút thêm trường HTML để thêm các trường một cách linh hoạt
Bước2. JavaScript để hình thành các trường đầu vào động. Trong add_fields. .
Bước 3. Xử lý từ gửi giá trị ở cuối máy chủ. Bây giờ cuối cùng trong form_post

Làm cách nào để thêm động các trường đầu vào và chuyển dữ liệu vào PHP?

Cách Tự động Thêm/Xóa các trường nhập liệu trong PHP bằng Jquery. .
.
.

Làm cách nào để hiển thị dữ liệu trong trường đầu vào trong PHP?

Để hiển thị các giá trị trong các trường nhập sau khi người dùng nhấn nút gửi, chúng tôi thêm một đoạn mã PHP nhỏ bên trong thuộc tính giá trị của các trường nhập sau. tên, email và trang web . Trong trường textarea nhận xét, chúng tôi đặt tập lệnh giữa các thẻ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Làm cách nào để tạo trường văn bản động trong PHP?

Cách tạo hộp văn bản động bằng PHP .
trống($_POST["save_Data"])) {
$conn = mysql_connect
mysql_select_db("text_box_dynamic",$conn);
$productCount = count($_POST["product_name"]);
$product_itemValues=0;
$query = "CHÈN VÀO GIÁ TRỊ sản phẩm (product_name,product_price) ";
$queryValue_textboX = "";