iT邦幫忙

0

請益各位前輩,要如何在同 一頁面將 Js傳值給php呢?

如題,希望可以不要丟到別的page再回來
下圖裡面第一個圈起來的scrip中的pos已經包含一組經緯度值(確定有值),想讓下面的php可以接到

有上網先查過但大多都是教js傳值到另一個php分頁在顯示QQ,求請高手幫忙
https://ithelp.ithome.com.tw/upload/images/20180602/20109267ThTYbMnJaC.png

weiclin iT邦高手 4 級 ‧ 2018-06-02 18:49:49 檢舉
AJAX
AJAX +1
JQ
1
小魚
iT邦好手 1 級 ‧ 2018-06-02 21:24:06

Ajax應該也不能傳值給PHP吧,
不過應該可以達到你的需求,
因為PHP是後端語言,
後端語言是運行在Server端,
JavaScript是前端語言,
前端語言是運行在Client端,
先在Server端編譯完後,
才將結果傳給Client端,
這是在兩台不同的電腦進行的,
(正常來說、除非是在Server所在的電腦開網頁、但還是要將Server跟Client的觀念釐清)
所以沒辦法JS傳值給PHP,

不過可以使用上面大大說的Ajax的方法,
Ajax其實是去跟Server端要資料,
當然你在Server端要先將程式寫好,
要到資料之後其實還是要用jQuery或JavaScript的方式處理,
不是使用PHP的語言處理,

以上說法是小弟小小的心得,
如果有錯誤或要補充的,
也歡迎大家批評指教。

1
rewrite
iT邦新手 5 級 ‧ 2018-06-04 09:30:48

其實就行為上你要在同一個頁面處理掉你說的「 不要丟到別的page再回來 」,是可行的

你的解法要往兩個地方處理

1.前端的js,而且一定要用ajax for post到你指定的頁面
2.後端你圈起來的地方要驗證是否為POST動作
php code example

<?php
if (isset($_POST['your_set_key']) && $_POST['your_set_key'] == 'XXXXXX') {
  // running your code... 
  // response header for js
}
?>

會說在行為上是可行是因為
在瀏覽器一般行為的存取都是GET,而你要在同一個頁面要處理不同動作而產生的結果就要有所區隔,
不然你瀏覽器一開,不就全部都執行下去了

不過...實務上分開兩個頁面會比較好是因為,你的邏輯跟業務,兩個行為分開比較好維護,
以後要翻新功能是也不會恨自己當初為啥沒有分開處理。

2
浩瀚星空
iT邦研究生 5 級 ‧ 2018-06-04 13:56:04

這個問題,你得先了解何謂前端,何謂後端。

後端php程式碼,其實並不會在html頁上。
一般的運做原理是將php的程式碼跑完後。組譯成html碼再回傳給瀏覽器上運行。
所以php才叫做後端。

依照你的說法,你似乎是將前後端搞在一起想一起跑的感覺。
如果我的理解沒錯,你是希望跑前端js來去修改後端的參數值。

這如果依照你的想法,是不可能做到的。
因為一但來到前端了。其php的值都是已經固定產生出來了。也已經解譯成html碼了。
你可以從瀏覽器的原始碼看一下,一定不會有這類的東西。

所以,你要了解前端與後端的特性。

我要發表回答

立即登入回答