HomeLập trìnhPhpHoàn toàn bế...

Hoàn toàn bế tắc khi cố gắng sử dụng một biến PHP trong JavaScript


Tôi đang cố gắng sử dụng một biến PHP trong JS và đã đọc rất nhiều câu hỏi và câu trả lời trên nhiều diễn đàn và trang trợ giúp nhưng các giải thích được giải thích không hoạt động trong tập lệnh.

Đây là index.js (nó hoạt động nếu tôi sử dụng một url trong hàm loadJSON thay cho MyData nhưng điều này cho phép xem tệp PHP trong trình duyệt)

// PHP Variable containing json data
var MyData = "<?php echo $wheelData; ?>";
//load your JSON (you could jQuery if you prefer)

function loadJSON(callback) {
  var xobj = new XMLHttpRequest();
  xobj.overrideMimeType("application/json");
  xobj.open('GET',  MyData,  true); 
  xobj.onreadystatechange = function() {
    if (xobj.readyState  == 4  &&  xobj.status  ==  "200") {
      //Call the anonymous function (callback) passing in the response
      callback(xobj.responseJSON);
    }
  };
  xobj.send(null);
}
alert(xobj);

// function capture the results
function myResult(e) {
  //e is the result object
    console.log('Spin Count: ' + e.spinCount + ' - ' + 'Win: ' + e.win + ' - ' + 'Message: ' +  e.msg);

    // userData object
    if(e.userData){
      
      console.log('User defined score: ' + e.userData.score)

    }

}

// function to capture errors
function myError(e) {
  //e is error object
  console.log('Spin Count: ' + e.spinCount + ' - ' + 'Message: ' +  e.msg);

}

function myGameEnd(e) {
  
  // e is gameResultsArray
  console.log(e);
  
}

function init() {

  loadJSON(function(response) {
    // Parse JSON string to an object
    var jsonData = JSON.parse(response);
    // spin it
    var mySpinBtn = document.querySelector('.spinBtn');
    //create new instance and pass in the vars object
    var myWheel = new Spin2WinWheel();
    
    // button
    myWheel.init({data:jsonData, onResult:myResult, onGameEnd:myGameEnd, onError:myError, spinTrigger: mySpinBtn});
    
  });
}

//And finally call it
init();

Cách phổ biến nhất mà tôi tìm thấy là sử dụng cách này (như trên)…

var MyData = "<?php echo $wheelData;  ?>";

Biến PHP được chuyển từ bộ điều khiển sang dạng xem và được json_encoded trong bộ điều khiển và được gọi trong index.js thông qua các thẻ tập lệnh trong tệp dạng xem index.tpl.

Đọc thêm  Bảng quản trị php - Diễn đàn freeCodeCamp

(Tôi cũng đã thử mã hóa trong chế độ xem và trong tập lệnh đều thất bại theo cùng một cách).

Nhưng tất cả những gì tôi nhận được là một chuỗi được trả về chứ không phải json trong biến PHP, như thế này…

chưa đặt tên (1)

Tôi biết json trong biến đang hoạt động như đã xác thực nó.

Tại sao tôi nhận được tiếng vang/bản in của

 var MyData = "<?php echo $wheelData; ?>";

Và không phải dữ liệu json? Tôi đã thử có và không có dấu ngoặc kép và nó giống nhau, tôi đã thử thoát các thẻ php như

 var MyData="; echo $wheelData;  echo ";

Một lần nữa kết quả tương tự… Tôi đang thiếu gì ở đây?

Mọi lời khuyên đều được đánh giá cao vì một khi điều này hoạt động, tôi có thể thực hiện công việc của mình trong PHP…

Cảm ơn bạn!


index.js được tải sau khi PHP đã hiển thị trang nhập tệp index.js vào đó. Tại thời điểm tệp index.js được nhập, nó sẽ xử lý <?php echo $wheelData; ?> HOẶC ; echo $wheelData; echo như một chuỗi.

Bạn nên có một điểm cuối php có thể được tham chiếu trong dòng sau:

  xobj.open('GET',  'url-for-php-page-that-returns-json',  true); 

Trang php của bạn sẽ lặp lại $wheelData.

Bây giờ tôi hiểu rằng bạn đã chỉ ra vấn đề.

Bây giờ tôi biết điều này, tôi khá chắc chắn rằng tôi có thể làm cho nó hoạt động.

Cảm ơn sự giúp đỡ của bạn!

Đọc thêm  Tìm hiểu Cú pháp, Nhận xét, Biến và Kiểu dữ liệu PHP – với các ví dụ

Vâng đã làm việc. Tôi đã tạo một hàm mới trong bộ điều khiển và thêm mảng PHP của mình sau đó json_encoded nó và sau đó sử dụng tiếng vang trong bộ điều khiển. Sau đó, thêm phần này vào JavaScript…

 xobj.open('GET',  'the/path/here',  true);

Và nó hoạt động!

Cảm ơn!

PS Tôi vẫn có thể theo dõi index.js và tìm URL sau đó sử dụng nó trong thanh địa chỉ để xem dữ liệu. Có cách nào để che giấu điều này?



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status