iT邦幫忙

0

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

  • 分享至 

  • xImage

如題,希望可以不要丟到別的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
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
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邦新手 2 級 ‧ 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

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

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

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

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

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

0
Oo_花之舞__oO
iT邦新手 1 級 ‧ 2023-04-10 15:16:50

前情提要

我個人也遇到相關問題,原本很苦惱(。•ㅅ•。)♡,
後來發現原來超級簡單,
只是想法卡住!!

觀念解說

使用form表單跟php寫在同一頁面,用get去接就可以了。

程式碼

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <form action="" method="GET">
        <input type="number" name="number" placeholder="name">
        <input type="submit" name="send">

    </form>
</body>
<script>


</script>

</html>

<?php



if (isset($Num)){

    $Num = $_GET['number'];


    switch($Num){
        case 1:
            echo "ONE";
            break;
        case 2:
            echo "TWO";
            break;
        case 3:
            echo "THREE";
            break;
        case 4 :
            echo "FOUR";
            break;
        default:
            echo "超出範圍";
    }
    
}



?>

心得

就是使用HTML<form>表單,以及php的$_GET,是個簡單的練習。
至於使用ajax那又是另一個技術了。
加上一段JS的內容,但原理也是一樣用get去接收。

相關問題

我需要在同一個頁面把Javascript變數傳送給PHP

我要發表回答

立即登入回答