Hướng dẫn php get value from html element - php lấy giá trị từ phần tử html

Trong quá khứ, bất cứ khi nào tôi cần nhận được giá trị của một phần tử HTML, tôi sẽ luôn gửi một biểu mẫu để tải một trang khác. Cái gì đó như:

page1.php

<form name="form1" action="page2.php" method="post">
   <input type="hidden" name="input1" value="value1" />
</form>

page2.php

<?php
   $data = $_POST['input1'];
?>

Câu hỏi của tôi là, liệu có thể nhận được giá trị của 'input1' trên cùng một trang (trang1.php) mà không cần nhấp vào nút gửi không?

Hướng dẫn php get value from html element - php lấy giá trị từ phần tử html

Dednplicator

43,7K6 Huy hiệu vàng62 Huy hiệu bạc110 Huy hiệu đồng6 gold badges62 silver badges110 bronze badges

Hỏi ngày 14 tháng 9 năm 2011 lúc 1:29Sep 14, 2011 at 1:29

Với jQuery:jQuery:

<?php 
    if (isset($_POST['data'])) { 
        $data = $_POST['data']; 
        print( "data is: $data" ); 
        return; 
    } 
?> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<script type="text/javascript" src="jquery-1.6.3.js"></script> 
</head> 
<body> 

<div>Response from server: <span id="response"></span></div> 
<script type="text/javascript"> 
    $.post('test.php',{'data': "value1"}, function (data) {
        $('#response').text(data);
    }); 
</script> 
</body> 
</html>

IE không phải là JURY không có đối tượng XMLHTTPREQUEST, vì vậy đây là một shim cho IE: IE doesn't have the XMLHttpRequest object so here is a shim for IE:

Yes, using ajax / javascript:

var formData = new FormData();

formData.append("input1", "value1");

var xhr = new XMLHttpRequest();
xhr.open("POST", "page1.php");
xhr.send(formData);

if (typeof XMLHttpRequest == "undefined") XMLHttpRequest = function() {
    try {
        return new ActiveXObject("Msxml2.XMLHTTP.6.0");
    }
    catch (e) {}
    try {
        return new ActiveXObject("Msxml2.XMLHTTP.3.0");
    }
    catch (e) {}
    try {
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e) {}
    //Microsoft.XMLHTTP points to Msxml2.XMLHTTP and is redundant
    throw new Error("This browser does not support XMLHttpRequest.");
};

Đã trả lời ngày 14 tháng 9 năm 2011 lúc 1:31Sep 14, 2011 at 1:31

JoejoeJoe

78.8K18 Huy hiệu vàng125 Huy hiệu bạc143 Huy hiệu đồng18 gold badges125 silver badges143 bronze badges

11

Để làm gì? Bạn có muốn gửi nó vào một tệp khác mà không cần thực sự "gửi" biểu mẫu không?

Bạn sử dụng JavaScript cho điều đó.

document.form1.input1.value

Đã trả lời ngày 14 tháng 9 năm 2011 lúc 1:32Sep 14, 2011 at 1:32

Rolando Cruzrolando CruzRolando Cruz

2.7941 Huy hiệu vàng15 Huy hiệu bạc24 Huy hiệu đồng1 gold badge15 silver badges24 bronze badges

2

PHP và HTML tương tác rất nhiều: PHP có thể tạo HTML và HTML có thể chuyển thông tin cho PHP. Trước khi đọc các Câu hỏi thường gặp này, điều quan trọng là bạn học cách truy xuất các biến từ các nguồn bên ngoài. Trang hướng dẫn về chủ đề này bao gồm nhiều ví dụ là tốt.

  1. Tôi cần mã hóa/giải mã nào khi chuyển giá trị thông qua biểu mẫu/url?
  2. Tôi đang cố gắng sử dụng một thẻ, nhưng các biến $ foo.x và $ foo.y không khả dụng. $ _Get ['foo.x'] cũng không tồn tại. Họ ở đâu?
  3. Làm cách nào để tạo mảng trong HTML?
  4. Làm cách nào để nhận được tất cả các kết quả từ một thẻ HTML chọn nhiều?
  5. Làm thế nào tôi có thể chuyển một biến từ JavaScript sang PHP?

Tôi cần mã hóa/giải mã nào khi chuyển giá trị thông qua biểu mẫu/url?

Tôi đang cố gắng sử dụng một thẻ, nhưng các biến $ foo.x và $ foo.y không khả dụng. $ _Get ['foo.x'] cũng không tồn tại. Họ ở đâu?string $data, which contains the string you want to pass on in a non-encoded way, these are the relevant stages:

  • Làm cách nào để tạo mảng trong HTML?htmlspecialchars() the whole value.

  • URL: Một URL bao gồm một số phần. Nếu bạn muốn dữ liệu của mình được hiểu là một mục, bạn phải mã hóa nó bằng urlencode ().urlencode().

Ví dụ #1 Phần tử HTML ẩn ẩn

<?php
   $data = $_POST['input1'];
?>
3

Lưu ý: Thật sai lầm khi urlencode () $ dữ liệu, bởi vì đó là trách nhiệm của trình duyệt đối với urlencode () dữ liệu. Tất cả các trình duyệt phổ biến làm điều đó một cách chính xác. Lưu ý rằng điều này sẽ xảy ra bất kể phương pháp nào (tức là, nhận hoặc đăng). Mặc dù vậy, bạn sẽ chỉ nhận thấy điều này trong trường hợp nhận được yêu cầu, vì các yêu cầu POST thường được ẩn.: It is wrong to urlencode() $data, because it's the browsers responsibility to urlencode() the data. All popular browsers do that correctly. Note that this will happen regardless of the method (i.e., GET or POST). You'll only notice this in case of GET request though, because POST requests are usually hidden.

Ví dụ #2 Dữ liệu được người dùng chỉnh sửa

<?php
   $data = $_POST['input1'];
?>
4

Lưu ý: Dữ liệu được hiển thị trong trình duyệt như dự định, bởi vì trình duyệt sẽ diễn giải các ký hiệu thoát HTML. Khi gửi, thông qua GET hoặc đăng, dữ liệu sẽ được trình duyệt được mã hóa để chuyển và trực tiếp urld được mã hóa bởi PHP. Vì vậy, cuối cùng, bạn không cần phải thực hiện bất kỳ urlencoding/urldcoD tự mình, mọi thứ đều được xử lý tự động.: The data is shown in the browser as intended, because the browser will interpret the HTML escaped symbols. Upon submitting, either via GET or POST, the data will be urlencoded by the browser for transferring, and directly urldecoded by PHP. So in the end, you don't need to do any urlencoding/urldecoding yourself, everything is handled automagically.

Ví dụ #3 trong URL

<?php
   $data = $_POST['input1'];
?>
5

Lưu ý: Trên thực tế, bạn đang giả mạo yêu cầu HTML, do đó, cần phải tự do URLENCODE () dữ liệu.: In fact you are faking a HTML GET request, therefore it's necessary to manually urlencode() the data.

Lưu ý: Bạn cần phải htmlspecialchars () toàn bộ URL, bởi vì URL xảy ra là giá trị của một liên quan HTML. Trong trường hợp này, trình duyệt trước tiên sẽ un-htmlspecialchars () giá trị, sau đó chuyển URL. PHP sẽ hiểu chính xác URL, bởi vì bạn urlencode () d dữ liệu. Bạn sẽ nhận thấy rằng

<?php
   $data = $_POST['input1'];
?>
6 trong URL được thay thế bằng
<?php
   $data = $_POST['input1'];
?>
7. Mặc dù hầu hết các trình duyệt sẽ phục hồi nếu bạn quên điều này, nhưng điều này không phải lúc nào cũng có thể. Vì vậy, ngay cả khi URL của bạn không năng động, bạn cần htmlspecialchars () URL.
: You need to htmlspecialchars() the whole URL, because the URL occurs as value of an HTML-attribute. In this case, the browser will first un-htmlspecialchars() the value, and then pass the URL on. PHP will understand the URL correctly, because you urlencode()d the data. You'll notice that the
<?php
   $data = $_POST['input1'];
?>
6 in the URL is replaced by
<?php
   $data = $_POST['input1'];
?>
7. Although most browsers will recover if you forget this, this isn't always possible. So even if your URL is not dynamic, you need to htmlspecialchars() the URL.

Tôi đang cố gắng sử dụng một thẻ, nhưng các biến $ foo.x và $ foo.y không khả dụng. $ _Get ['foo.x'] cũng không tồn tại. Họ ở đâu?

Khi gửi biểu mẫu, có thể sử dụng hình ảnh thay vì nút gửi tiêu chuẩn có thẻ như:

<input type="image" src="image.gif" name="foo" />

Khi người dùng nhấp vào đâu đó trên hình ảnh, biểu mẫu đi kèm sẽ được truyền đến máy chủ với hai biến bổ sung: foo.x và foo.y.

Vì foo.x và foo.y sẽ tạo các tên biến không hợp lệ trong PHP, chúng được chuyển đổi tự động thành FOO_X và FOO_Y. Đó là, các giai đoạn được thay thế bằng dấu gạch dưới. Vì vậy, bạn sẽ truy cập các biến này như bất kỳ biến nào khác được mô tả trong phần về việc truy xuất các biến từ các nguồn bên ngoài. Ví dụ: $ _get ['foo_x'].

Ghi chú::

Không gian trong tên biến yêu cầu được chuyển đổi thành dấu gạch dưới.

Làm cách nào để tạo mảng trong HTML?

Để nhận kết quả của bạn được gửi dưới dạng một mảng cho tập lệnh PHP của bạn, bạn đặt tên cho hoặc các phần tử như thế này:

<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />

Lưu ý các dấu ngoặc vuông sau tên biến, đó là những gì làm cho nó trở thành một mảng. Bạn có thể nhóm các phần tử thành các mảng khác nhau bằng cách gán cùng một tên cho các yếu tố khác nhau:

<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyOtherArray[]" />
<input name="MyOtherArray[]" />

Điều này tạo ra hai mảng, MyArray và MyotherArray, được gửi đến tập lệnh PHP. Cũng có thể gán các khóa cụ thể cho mảng của bạn:

<input name="AnotherArray[]" />
<input name="AnotherArray[]" />
<input name="AnotherArray[email]" />
<input name="AnotherArray[phone]" />

Mảng khác giờ sẽ chứa các phím 0, 1, email và điện thoại.

Ghi chú::

Không gian trong tên biến yêu cầu được chuyển đổi thành dấu gạch dưới.

Làm cách nào để tạo mảng trong HTML?

Để nhận kết quả của bạn được gửi dưới dạng một mảng cho tập lệnh PHP của bạn, bạn đặt tên cho hoặc các phần tử như thế này:

Lưu ý các dấu ngoặc vuông sau tên biến, đó là những gì làm cho nó trở thành một mảng. Bạn có thể nhóm các phần tử thành các mảng khác nhau bằng cách gán cùng một tên cho các yếu tố khác nhau:

<select name="var" multiple="yes">

Điều này tạo ra hai mảng, MyArray và MyotherArray, được gửi đến tập lệnh PHP. Cũng có thể gán các khóa cụ thể cho mảng của bạn:

<?php
   $data = $_POST['input1'];
?>
0

Mảng khác giờ sẽ chứa các phím 0, 1, email và điện thoại.

<?php
   $data = $_POST['input1'];
?>
1

Chỉ định các phím mảng là tùy chọn trong HTML. Nếu bạn không chỉ định các khóa, mảng sẽ được điền vào thứ tự các phần tử xuất hiện trong biểu mẫu. Ví dụ đầu tiên của chúng tôi sẽ chứa các phím 0, 1, 2 và 3.count() function can be used to determine how many options were selected, and the sort() function can be used to sort the option array if necessary.

Xem thêm các hàm mảng và biến từ các nguồn bên ngoài.

<?php
   $data = $_POST['input1'];
?>
2

Làm cách nào để nhận được tất cả các kết quả từ một thẻ HTML chọn nhiều?

Chọn nhiều thẻ trong cấu trúc HTML cho phép người dùng chọn nhiều mục từ danh sách. Các mục này sau đó được chuyển cho trình xử lý hành động cho biểu mẫu. Vấn đề là tất cả chúng được thông qua với cùng một tên widget. I E.

Tuy nhiên, có thể vượt qua các biến giữa hai. Một cách để thực hiện điều này là tạo mã JavaScript với PHP và tự làm mới trình duyệt, chuyển các biến cụ thể trở lại tập lệnh PHP. Ví dụ dưới đây cho thấy chính xác cách thực hiện việc này - nó cho phép mã PHP thu được chiều cao và chiều rộng của màn hình, một cái gì đó thường chỉ có thể ở phía máy khách.

Ví dụ #4 Tạo JavaScript với PHP

<?php
   $data = $_POST['input1'];
?>
9

Không có người dùng đóng góp ghi chú cho trang này.

Làm thế nào để bạn tìm thấy giá trị của một phần tử trong HTML?

Phương thức HTML DOM getAttribution () được sử dụng để nhận giá trị của thuộc tính của phần tử.Bằng cách chỉ định tên của thuộc tính, nó có thể nhận được giá trị của phần tử đó.Để có được các giá trị từ các thuộc tính không chuẩn, chúng ta có thể sử dụng phương thức getAttribution (). is used to get the value of the attribute of the element. By specifying the name of the attribute, it can get the value of that element. To get the values from non-standard attributes, we can use the getAttribute() method.

Làm thế nào tôi có thể gọi ID HTML trong PHP?

PHP không thể "gọi một điều khiển HTML".Nếu bạn muốn tự động sửa đổi mọi thứ trong trình duyệt, bạn sẽ phải thực hiện phía máy khách bằng JavaScript.Đó là phía máy khách, vì vậy bạn phải sử dụng JavaScript, không phải PHP.. If you want to dynamically modify things in the browser, you'll have to do it client-side using Javascript. It is client-side, so you have to use Javascript, not PHP.

HTML có thể truyền thông tin cho PHP không?

PHP và HTML tương tác rất nhiều: PHP có thể tạo HTML và HTML có thể chuyển thông tin cho PHP.HTML can pass information to PHP.

Làm thế nào để bạn nhận được một phần tử HTML từ một chuỗi?

Sử dụng JavaScript để lấy các phần tử HTML từ một chuỗi..
Đặt phân tích cú pháp = new DomParser ();const doc = trình phân tích cú pháp.ParseFromString (văn bản, 'văn bản/html');Bảng điều khiển.....
[... Liên kết].....
.
const gốc = tài liệu.....
Đặt phân tích cú pháp = new DomParser ();const doc = trình phân tích cú pháp ..