2012-03-08 36 views
6

thể trùng lặp:
How to pass a variable/data from javascript to php and vice versa?Chuyển biến javascript sang mã php?

Tôi có một tập tin của php và mã javascript. Tôi muốn thiết lập một biến php là kết quả của một hàm javascript mà có một biến php như một tham số. Ví dụ:

$parameter = "this is a php variable"; 
$phpVar = echo "foo(" . parameter . ");"; 

Tôi biết bạn không thể thực hiện "= echo", có cách nào khác để tôi có thể thực hiện việc này không?

Cảm ơn

+1

Gửi sử dụng ajax, hoặc sử dụng một hình thức ... Tùy vào trường hợp của bạn cũng vậy, vào những gì bạn muốn làm .. – StiveKnx

Trả lời

12

Bạn không thể trực tiếp làm điều đó, vì JavaScript chạy ở phía máy khách và PHP được thực hiện ở phía máy chủ.

Bạn cần thực thi JavaScript trước và sau đó gửi kết quả đến máy chủ qua cuộc gọi MẪU hoặc AJAX.

Đây là những gì mà có thể trông giống như:

PHP

$parameter = "this is a php variable"; 
echo "var myval = foo(" . parameter . ");"; 

Javascript

var myval = foo("this is a php variable"); // generated by PHP 

$.ajax({ 
    type: 'POST', 
    url: 'yourphpfile.php', 
    data: {'variable': myval}, 
}); 

Nhận PHP (yourphpfile.php)

$myval = $_POST['variable']; 
// do something 
+0

Mã PHP nhận được là tệp được chỉ định bởi yourphpfile.php. Nó có thể là tách biệt hoặc một phần của một khối nếu trong tệp PHP gốc. –

+0

Thường xuyên và dễ thực hiện. – Jodo1992

1

Bạn phải thực hiện một yêu cầu GET hoặc POST để kịch bản từ JavaScript.

3

Mã PHP được chạy trên máy chủ trước khi phản hồi được gửi; JavaScript được chạy sau, trong trình duyệt. Bạn không thể đặt biến PHP từ JavaScript vì không có biến PHP trong trình duyệt, trong đó JavaScript nếu chạy. Bạn sẽ phải sử dụng một yêu cầu AJAX từ JavaScript đến một tập lệnh PHP lưu trữ bất kỳ thông tin nào bạn muốn nhận.

+2

Ai downvoted, nó sẽ hữu ích hơn để giải thích những gì bạn thấy khó chịu, nhất là khi mọi người trả lời sau tôi có vẻ như đang nói cùng một điều tôi đã làm. Có một số sắc thái quan trọng tôi đã sai? Bạn không thích những người được đặt tên theo các loại thịt xay chất lượng cao? – Chuck

0

Bạn không thể vượt qua một js biến tới php .
PHP xảy ra để chạy trên máy chủ, một ngàn dặm từ khách hàng, nơi js được chạy.

Vì vậy, bạn chỉ có thể gọi tập lệnh php, sử dụng js hoặc siêu liên kết thông thường.

2

Hãy thử điều này:

var a = "Result: "+ <?php echo json_encode($parameter); ?>; 
Các vấn đề liên quan