10/10/2018, 13:18

Truyền giá trị 1 biến php vào js

Mình có 1 biến php, nếu mình để trong html thì nhận được giá trị của biến đó, còn để trong js thì không
Search cả tối rồi mà k thấy kết quả

Mình đã chèn biến của php vào đây (những bài tìm trên mạng đều nói chèn như thế này thì nhận được giá trị của biến
-------------------------------------------------
<script type="text/javascript">
function calc()
{
var x = "<?php echo $listing.name; ?>";
}
</script>
-------------------------------------------------

Nhưng mình chèn xong thì biến x ở js không nhận được giá trị của biến $listing.name trong php
zmt264 viết 15:30 ngày 10/10/2018
Được gửi bởi RecordsHYIP
Mình có 1 biến php, nếu mình để trong html thì nhận được giá trị của biến đó, còn để trong js thì không
Search cả tối rồi mà k thấy kết quả

Mình đã chèn biến của php vào đây (những bài tìm trên mạng đều nói chèn như thế này thì nhận được giá trị của biến
-------------------------------------------------
<script type="text/javascript">
function calc()
{
var x = "<?php echo $listing.name; ?>";
}
</script>
-------------------------------------------------

Nhưng mình chèn xong thì biến x ở js không nhận được giá trị của biến $listing.name trong php
chạy rồi view source (HTML) thì nó hiện ra đoạn JS thế nào? x = "" (rỗng) hay x=?

Và nếu như không có đoạn js mà chỉ có mỗi <?php echo $listing.name; ?> thì nó hiện ra sao?
zmt264 viết 15:26 ngày 10/10/2018
Được gửi bởi RecordsHYIP
dạ, ví dụ như biến $listing.name của em là DDTH


Nếu em để thế thì nó có giá trị là DDTH

Còn trong js (sau khi đã view source) thì nó như phía trên luôn

thế này nó mới dã man
đúng ra lúc view source thì phải là
ok, đã hiểu vấn đề, cái mà bạn dùng nó là 1 dạng template, bạn phải có tư duy tương tự thì mới học nhanh được, trên là :

<body>{$listing.name}</body>

thì dưới phải là:

<script type="text/javascript">
function calc()
{
var x = '{$listing.name}'; // hoặc var x = {$listing.name};
}
</script>

còn nếu muốn viết như trên mạng dậy bạn, thì cái ở trên nó phải khác
Vô Thin viết 15:25 ngày 10/10/2018
Đã cài web server có hỗ trợ PHP chưa? Nếu chưa / cài chưa đúng thì nó xuất hiện như trên không có gì lạ, nghĩa là đoạn mã PHP chưa được parse đúng.
zmt264 viết 15:19 ngày 10/10/2018
Được gửi bởi superthin
Đã cài web server có hỗ trợ PHP chưa? Nếu chưa / cài chưa đúng thì nó xuất hiện như trên không có gì lạ, nghĩa là đoạn mã PHP chưa được parse đúng.
cái đó là template và parser là template engine chứ ko phải là PHP.
RecordsHYIP viết 15:30 ngày 10/10/2018
<script type="text/javascript">
function calc()
{
var x = {$listing.name};
}
</script>
View source nó vẫn ra var x = {$listing.name}; thế nó mới dã man chứ
Được gửi bởi superthin
Đã cài web server có hỗ trợ PHP chưa? Nếu chưa / cài chưa đúng thì nó xuất hiện như trên không có gì lạ, nghĩa là đoạn mã PHP chưa được parse đúng.
Web server có hỗ trợ mà, không thì sao phía dưới có thể lấy được biến php đc
zmt264 viết 15:31 ngày 10/10/2018
Được gửi bởi RecordsHYIP
View source nó vẫn ra var x = {$listing.name}; thế nó mới dã man chứ

Web server có hỗ trợ mà, không thì sao phía dưới có thể lấy được biến php đc
thế bó tay, trên parser có thể parse ra được, mà dưới thì không? theo logic thì bất kỳ chỗ nào có {$listing.name} sẽ được replace thành giá trị biến (DDTH), trừ khi biến đó được được cấu hình là chỉ được parse khi thuộc một thành phần nào đó của HTML (ví dụ body, nếu căn cứ vào code của bạn), hoặc là chỉ dùng 1 lần hoặc bạn để 2 cái {$listing.name} ở 2 file khác nhau, 1 file thì được template engine đọc, còn 1 file thì không.

Thôi thử lần nữa nhé.

Nếu bạn viết

<h1>{$listing.name}</h1>
<script type="text/javascript">
function calc()
{
var x = '{$listing.name}'; // hoặc var x = {$listing.name};
}
</script>

thì view source ra cái gì?
RecordsHYIP viết 15:22 ngày 10/10/2018
Được gửi bởi zmt264
<h1>{$listing.name}</h1>
<script type="text/javascript">
function calc()
{
var x = '{$listing.name}'; // hoặc var x = {$listing.name};
}
</script>

thì view source ra cái gì?
Quái, thế này thì cả h1 và cả var x đều như nhau: {$listing.name} - không ra giá trị DDTH
Nhưng cái dưới thân HTML gọi {$listing.name} thì ra giá trị DDTH

Muộn rồi, em ngủ đã mai ngâm cứu tiếp
zmt264 viết 15:23 ngày 10/10/2018
Được gửi bởi RecordsHYIP
Quái, thế này thì cả h1 và cả var x đều như nhau: {$listing.name} - không ra giá trị DDTH
Nhưng cái dưới thân HTML gọi {$listing.name} thì ra giá trị DDTH

Muộn rồi, em ngủ đã mai ngâm cứu tiếp
Vậy chứng tỏ là template engine chỉ parse phần trong <body>, không parse phần <head>, bạn thử chuyển cái h1 và script vào trong body xem.

Sống quy củ quá
windowxpsp1 viết 15:30 ngày 10/10/2018
Mình nghĩ bạn đã gán biến x bằng cái chuổi rồi !
Bài liên quan
0