Làm cách nào để lặp lại biến PHP trong JavaScript?

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách lưu trữ giá trị biến JavaScript trong giá trị biến PHP. Vì một chạy ở phía máy chủ và một chạy ở phía máy khách. Hy vọng hướng dẫn này sẽ hữu ích cho bạn và tôi sẽ cố gắng làm cho hướng dẫn này dễ học

Biến JavaScript thành biến PHP

Giả sử chúng tôi có JavaScript và PHP trực tiếp trong cùng một tài liệu, thì PHP sẽ được thực thi trước và chúng tôi biết nó được thực thi ở phía máy chủ và JavaScript sẽ được thực thi thứ hai và chúng tôi biết rằng nó sẽ được thực thi ở phía trình duyệt. Bằng cách này, cả hai sẽ không bao giờ tương tác

Hãy hiểu với một ví dụ

Giả sử tôi khai báo một biến JavaScript và tôi không thể gán giá trị đó cho PHP. Điều này có thể được giải quyết trực tiếp bằng cách sử dụng Ajax. Nhưng vấn đề là tôi không biết Ajax

  
    
       var myjavascriptVar=123;
       
     
     
  

Mã số

//USING COOKIE

 document.cookie = "myjavascriptVar = " + myjavascriptVar 

 

Sử dụng Ajax

Cách lý tưởng nhất để chuyển giá trị biến JavaScript trong biến PHP là chuyển biến JS cho lệnh gọi AJAX. Nhưng để làm điều này, chúng ta cần tải lại trang có biến trong tham số $_GET và truy cập biến trong PHP bằng cách sử dụng $_GET[‘a’]

Các lập trình viên PHP thường gặp sự cố khi cố gắng tạo động mã JavaScript. Vấn đề là một số ký tự cần được thoát trong JavaScript và cả trong PHP. Việc nhân đôi này có thể khó nắm bắt

Thoát khỏi trích dẫn và ngắt dòng

Giả sử bạn bắt đầu với một biến PHP cần được hiển thị trong hộp thoại xác nhận hoặc cảnh báo JavaScript

//USING COOKIE

 document.cookie = "myjavascriptVar = " + myjavascriptVar 
1

Cách rõ ràng để biến điều này thành một cảnh báo là

//USING COOKIE

 document.cookie = "myjavascriptVar = " + myjavascriptVar 
2

nhưng điều đó dẫn đến mã JavaScript không hợp lệ.

//USING COOKIE

 document.cookie = "myjavascriptVar = " + myjavascriptVar 
2

Có hai vấn đề. Thứ nhất, ngắt dòng bên trong một biến JavaScript không phải là một tùy chọn. Chúng sẽ cần được thay thế bằng \n [ký tự đại diện cho dấu ngắt dòng]. Thứ hai, dấu ngoặc kép bên trong văn bản xung đột với dấu ngoặc kép bên ngoài của cuộc gọi cảnh báo

Học hỏi từ những sai lầm của chúng tôi, đây là một số mã thực sự hoạt động

//USING COOKIE

 document.cookie = "myjavascriptVar = " + myjavascriptVar 
2

Đoạn mã trên dựa vào PHP được nhúng trong mã HTML. Nếu bạn đang xuất toàn bộ trang từ PHP thì bạn cần tiến thêm một bước

//USING COOKIE

 document.cookie = "myjavascriptVar = " + myjavascriptVar 
5

đầu ra bây giờ là

//USING COOKIE

 document.cookie = "myjavascriptVar = " + myjavascriptVar 
2

Cách tiếp cận tương tự có thể được áp dụng trong hầu hết mọi tình huống mà PHP cần chuyển các biến sang JavaScript

Khi cố gắng gỡ lỗi loại mã này, trước tiên bạn phải luôn kiểm tra xem mã nào hợp lệ trong JavaScript [hầu hết các trình duyệt hiện đại đều có trình gỡ lỗi tích hợp sẵn cho mã này] và chỉ sau đó mới xem cách nó có thể được tạo từ PHP

Ghi chú. Không cần thiết phải mã hóa các ký tự như & và " thành các thực thể HTML của chúng vì JavaScript là ngôn ngữ riêng biệt với HTML và có thể xử lý chúng mà không gặp vấn đề gì

Cách chuyển một biến từ WP sang js. Xem https. // nhà phát triển. báo chí. org/tham chiếu/chức năng/wp_localize_script/

Vijay Hardaha

[@vijayhardaha]

11 tháng, 2 tuần trước

Từ việc truy cập các biến từ tệp này sang tệp khác, bạn sẽ phải sử dụng


var modoShortcode = ;
1 để gọi các biến



var modoShortcode = ;

Trình bắt đầu chuỗi

snippet24

[@đoạn trích24]

11 tháng, 2 tuần trước

@sterndata Cảm ơn bạn.
Câu hỏi từ ví dụ này https. // nhà phát triển. báo chí. org/reference/functions/wp_localize_script/#comment-1301
Tôi có thể xác định $translation_array trong bất kỳ mẫu thông thường nào không? . php mà thay vào đó là chỉ mục. php

@vijayhardaha
Cảm ơn bạn. Thật thú vị, IIRC đang sử dụng toàn cầu một thông lệ thay vì tránh?

  • Câu trả lời này đã được sửa đổi 11 tháng, 2 tuần trước bởi
    snippet24 .
  • Câu trả lời này đã được sửa đổi 11 tháng, 2 tuần trước bởi snippet24 .

Vijay Hardaha

[@vijayhardaha]

11 tháng, 2 tuần trước

đưa mọi thứ vào chỉ mục. php là một ý tưởng tồi. nếu bạn chỉ cần những biến đó trong tệp chân trang thì hãy xác định ở đó trừ khi bạn thực sự cần những thứ đó trong chỉ mục. php

Người kiểm duyệt

bcworkz

[@bcworkz]

11 tháng, 2 tuần trước

Kỹ thuật bản địa hóa tập lệnh đã được thử và thành công, nhưng nó thực sự hơi rắc rối. Nó không nhằm mục đích chuyển các lọ ngẫu nhiên, mà dành cho mục đích đặt tên của nó, bản địa hóa. Bây giờ có một chức năng phù hợp hơn. wp_add_inline_script[]
https. // nhà phát triển. báo chí. org/reference/functions/wp_add_inline_script/
Về cơ bản, nó hoạt động giống như vậy, chỉ là nó được đặt tên hay hơn thôi 🙂

Đảm bảo $modoshortcode1 nằm trong phạm vi của bất kỳ thứ gì PHP đang sử dụng nó. Sử dụng toàn cầu là một cách. Việc sử dụng quá nhiều không được khuyến khích, nhưng nếu bạn cần nó, bạn cần nó

Đồng thời kiểm tra HTML nguồn của trang. Có thể xảy ra trường hợp nhiệm vụ JS kết thúc sau khi tập lệnh sử dụng nó. Khi bạn sử dụng các kỹ thuật tập lệnh bản địa hóa hoặc nội tuyến, các phụ thuộc được quản lý khi tập lệnh được xử lý và bạn sẽ không gặp phải các sự cố xử lý theo thứ tự như vậy

Trình bắt đầu chuỗi snippet24

[@đoạn trích24]

11 tháng, 2 tuần trước

@bcworkz Cảm ơn bạn

Cũng kỳ lạ ngay cả với

$modoshortcode1 = "lista";
$paginashortcode1 = "7";
global $modoshortcode1, $paginashortcode1;

Tôi tiếp tục gặp lỗi tương tự

đưa mọi thứ vào chỉ mục. php là một ý tưởng tồi. nếu bạn chỉ cần những biến đó trong tệp chân trang thì hãy xác định ở đó trừ khi bạn thực sự cần những thứ đó trong chỉ mục. php

mm có lẽ có một cách tốt hơn nhưng tôi không biết về nó

Người kiểm duyệt bcworkz

[@bcworkz]

11 tháng, 2 tuần trước

Việc sử dụng đúng chức năng bản địa hóa hoặc tập lệnh nội tuyến sẽ giải quyết cả hai vấn đề. Bạn thậm chí có thể đưa tập lệnh vào hàng đợi một cách có điều kiện để tập lệnh chỉ xuất hiện trên các trang thực sự sử dụng tập lệnh đó. PHP cho điều này được đặt tốt nhất trong các chức năng của chủ đề con. php hoặc plugin tùy chỉnh mà bạn đã tạo

Vijay Hardaha

[@vijayhardaha]

11 tháng, 2 tuần trước

@snippet24 tốt hơn bạn nên cung cấp ảnh chụp màn hình mã và lỗi của mình. chúng tôi không thể hiểu những gì bạn đang viết trong các tập tin của bạn

Trình bắt đầu chuỗi snippet24

[@đoạn trích24]

11 tháng, 2 tuần trước

Okey chắc chắn rồi và tôi sẽ cung cấp một số ngữ cảnh và mã. Nếu bạn vẫn muốn ảnh chụp màn hình, tôi cũng có thể gửi chúng nhưng tôi hy vọng sẽ tốt hơn với mã bên dưới và mô tả

Tôi đang gọi mã ngắn với thuộc tính của chúng được xác định là biến trước khi thực thi mã ngắn

Như thế này

Mã này đi vào một số mẫu và có hai biến thể cho mỗi mẫu, mỗi mẫu có các thuộc tính khác nhau [ví dụ: các hoạt động trong quá khứ và tương lai. ]

Bây giờ cũng có một kịch bản ở chân trang. php chạy lệnh gọi ajax sau khi thao tác với các biến php đã truyền tùy thuộc vào nút nào được nhấp

Vì vậy, chỉ một phần của nó trông như thế này

var modoShortcode = console.log[**];
var paginasShortcode = "1";
var shortcodeAct = "";

function cargarMasActFuncion[] {
  paginasShortcode++;
  shortcodeAct = *[actividades_shortcode pagina="${paginasShortcode}" modo="${modoShortcode}" fecha="pasadas"]*;
  //console.log[shortcodeAct]
  var TipoFuncionAjax = "cargarMasPasadas";
  actionAjax[TipoFuncionAjax, shortcodeAct]
}

Chỉnh sửa. tics trở lại được thay thế bằng *

Xin lưu ý rằng tôi đang sử dụng bảng điều khiển. log cho $modoshortcode1 trong tập lệnh và đó là lỗi trả về


Notice: Undefined variable: modoshortcode1 in E:**footer.php on line 164

Việc sử dụng đúng chức năng bản địa hóa hoặc tập lệnh nội tuyến sẽ giải quyết cả hai vấn đề

Được rồi, tôi đang thử tập lệnh nội tuyến

  • Câu trả lời này đã được sửa đổi 11 tháng, 2 tuần trước bởi snippet24 .
  • Câu trả lời này đã được sửa đổi 11 tháng, 2 tuần trước bởi snippet24 .
  • Câu trả lời này đã được sửa đổi 11 tháng, 2 tuần trước bởi snippet24 .
  • Câu trả lời này đã được sửa đổi 11 tháng, 2 tuần trước bởi snippet24 .

Trình bắt đầu chuỗi snippet24

[@đoạn trích24]

11 tháng, 2 tuần trước

Tôi xin lỗi đây là lỗi đầy đủ

________số 8

Nhưng tôi không biết tại sao bản sửa lỗi toàn cầu không thực sự hoạt động

  • Câu trả lời này đã được sửa đổi 11 tháng, 2 tuần trước bởi snippet24 .
  • Câu trả lời này đã được sửa đổi 11 tháng, 2 tuần trước bởi snippet24 .
  • Câu trả lời này đã được sửa đổi 11 tháng, 2 tuần trước bởi snippet24 .

Vijay Hardaha

[@vijayhardaha]

11 tháng, 2 tuần trước

Tôi không chắc bạn đang cố gắng làm gì với javascript/jquery đó. Không thể hiểu logic của bạn ở đó. nhưng đây là thông tin về lỗi nhận được

Trong bất cứ thứ gì bạn đang đặt mã PHP đó, nó sẽ như thế này

$modoshortcode1   = 'lista';
$paginashortcode1 = '7';

$shortcodeactpasadas = '[actividades_shortcode pagina="' . $paginashortcode1 . '" modo="' . $modoshortcode1 . '" fecha="pasadas"]';

echo do_shortcode[ $shortcodeactpasadas ];

và php chân trang của bạn sẽ có mã như thế này

//USING COOKIE

 document.cookie = "myjavascriptVar = " + myjavascriptVar 
0

Vijay Hardaha

[@vijayhardaha]

11 tháng, 2 tuần trước

Chỉ cần lưu ý nhanh, có một cách tốt hơn để làm mọi việc, nhưng vì tôi không hiểu logic của bạn nên tôi không thể nói nhưng bạn đang làm điều đó có vẻ sai đối với tôi

Làm cách nào để sử dụng tiếng vang PHP trong JavaScript?

Lệnh echo được sử dụng trong PHP để in bất kỳ giá trị nào vào tài liệu HTML. Sử dụng thẻ .

Làm cách nào để hiển thị giá trị biến PHP trong JavaScript?

Cách chuyển một biến JavaScript sang PHP là thông qua một yêu cầu . Loại URL này chỉ hiển thị nếu chúng ta sử dụng hành động GET, hành động POST ẩn thông tin trong URL. Phía máy chủ [PHP]. Trên trang PHP phía máy chủ, chúng tôi yêu cầu dữ liệu được gửi theo biểu mẫu và hiển thị kết quả. $result = $_GET [ 'dữ liệu' ];

Làm cách nào để đặt biến PHP thành biến JavaScript?

$php_variable = 'chuỗi'; . Tất nhiên bạn có thể lấy giá trị của biến này theo cách bạn cần. Đó là nó. Bạn chỉ cần xác định biến PHP trước, sau đó đưa biến đó vào câu lệnh khai báo biến JS cơ bản .

Làm cách nào để chuyển giá trị PHP trong hàm JavaScript?

Bạn có thể chuyển các giá trị PHP sang JavaScript. PHP sẽ thực thi phía máy chủ để giá trị sẽ được tính toán và sau đó bạn có thể lặp lại nó với HTML chứa javascript. Sau đó, javascript sẽ thực thi trong trình duyệt máy khách với giá trị được PHP tính toán phía máy chủ

Chủ Đề