Rumah > Soal Jawab > teks badan
P粉4638111002023-08-28 10:40:20
Saya biasanya menggunakan atribut data-* dalam HTML.
<div class="service-container" data-service="<?= htmlspecialchars($myService->getValue()) ?>" > </div> <script> $(document).ready(function() { $('.service-container').each(function() { var container = $(this); var service = container.data('service'); // Var "service" now contains the value of $myService->getValue(); }); }); </script>
Contoh ini menggunakan jQuery, tetapi ia boleh disesuaikan dengan perpustakaan lain atau JavaScript biasa.
Anda boleh membaca lebih lanjut tentang sifat set data di sini: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.dataset
P粉5026087992023-08-28 00:24:11
Sebenarnya terdapat beberapa cara untuk melakukan ini. Ada yang memerlukan lebih banyak overhed daripada yang lain, dan ada yang dianggap lebih baik daripada yang lain.
Tanpa susunan tertentu:
Dalam artikel ini, kita akan melihat setiap kaedah di atas, memahami kebaikan dan keburukan setiap kaedah, dan cara melaksanakannya.
Kaedah ini dianggap terbaik kerana skrip bahagian pelayan dan bahagian pelanggan anda adalah berasingan sepenuhnya.
Dengan AJAX, anda memerlukan dua halaman, satu halaman di mana PHP menjana output, dan halaman kedua di mana JavaScript mendapat output itu:
/* Do some operation here, like talk to the database, the file-session * The world beyond, limbo, the city of shimmers, and Canada. * * AJAX generally uses strings, but you can output JSON, HTML and XML as well. * It all depends on the Content-type header that you send with your AJAX * request. */ echo json_encode(42); // In the end, you need to `echo` the result. // All data should be `json_encode`-d. // You can `json_encode` any value in PHP, arrays, strings, // even objects.
<!-- snip --> <script> fetch("get-data.php") .then((response) => { if(!response.ok){ // Before parsing (i.e. decoding) the JSON data, // check for any errors. // In case of an error, throw. throw new Error("Something went wrong!"); } return response.json(); // Parse the JSON data. }) .then((data) => { // This is where you handle what to do with the response. alert(data); // Will alert: 42 }) .catch((error) => { // This is where you handle errors. }); </script> <!-- snip -->
Gabungan dua fail di atas akan membunyikan amaran apabila pemuatan fail selesai 42
.
Kaedah ini tidak sehebat AJAX, tetapi ia masih mempunyai kelebihannya. Masih terdapat pemisahan relatif antara PHP dan JavaScript, dalam erti kata tiada PHP langsung dalam JavaScript.
来存储信息,因为获取信息更容易超出 inputNode.value
,但这样做意味着 HTML 中存在无意义的元素。 HTML 具有用于表示有关文档的数据的
元素,并且 HTML 5 引入了 data-*
khusus untuk data yang boleh dibaca menggunakan JavaScript yang boleh dikaitkan dengan elemen tertentu. Dengan ini, ideanya adalah untuk mencipta beberapa jenis elemen yang tidak akan ditunjukkan kepada pengguna, tetapi boleh dilihat oleh JavaScript.
<!-- snip --> <div id="dom-target" style="display: none;"> <?php $output = "42"; // Again, do some operation, get the output. echo htmlspecialchars($output); /* You have to escape because the result will not be valid HTML otherwise. */ ?> </div> <script> var div = document.getElementById("dom-target"); var myData = div.textContent; </script> <!-- snip -->
Ini mungkin yang paling mudah difahami.
Pelaksanaannya agak mudah:
<!-- snip --> <script> var data = <?php echo json_encode("42", JSON_HEX_TAG); ?>; // Don't forget the extra semicolon! </script> <!-- snip -->
Semoga berjaya kepada anda!