Ajax應該也不能傳值給PHP吧,
不過應該可以達到你的需求,
因為PHP是後端語言,
後端語言是運行在Server端,
JavaScript是前端語言,
前端語言是運行在Client端,
先在Server端編譯完後,
才將結果傳給Client端,
這是在兩台不同的電腦進行的,
(正常來說、除非是在Server所在的電腦開網頁、但還是要將Server跟Client的觀念釐清)
所以沒辦法JS傳值給PHP,
不過可以使用上面大大說的Ajax的方法,
Ajax其實是去跟Server端要資料,
當然你在Server端要先將程式寫好,
要到資料之後其實還是要用jQuery或JavaScript的方式處理,
不是使用PHP的語言處理,
以上說法是小弟小小的心得,
如果有錯誤或要補充的,
也歡迎大家批評指教。
其實就行為上你要在同一個頁面處理掉你說的「 不要丟到別的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,而你要在同一個頁面要處理不同動作而產生的結果就要有所區隔,
不然你瀏覽器一開,不就全部都執行下去了
不過...實務上分開兩個頁面會比較好是因為,你的邏輯跟業務,兩個行為分開比較好維護,
以後要翻新功能是也不會恨自己當初為啥沒有分開處理。
這個問題,你得先了解何謂前端,何謂後端。
後端php程式碼,其實並不會在html頁上。
一般的運做原理是將php的程式碼跑完後。組譯成html碼再回傳給瀏覽器上運行。
所以php才叫做後端。
依照你的說法,你似乎是將前後端搞在一起想一起跑的感覺。
如果我的理解沒錯,你是希望跑前端js來去修改後端的參數值。
這如果依照你的想法,是不可能做到的。
因為一但來到前端了。其php的值都是已經固定產生出來了。也已經解譯成html碼了。
你可以從瀏覽器的原始碼看一下,一定不會有這類的東西。
所以,你要了解前端與後端的特性。
我個人也遇到相關問題,原本很苦惱(。•ㅅ•。)♡,
後來發現原來超級簡單,
只是想法卡住!!
使用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去接收。