iT邦幫忙

1

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

  • 分享至 

  • xImage

小弟新手剛入門,不得要領,請教各位大大一下,我需要在同一個頁面放PHP程式碼以及Javascript,
由於小弟之前從沒接觸過PHP,所以完全不懂....,根本不知道這樣可不可行,
小弟的PHP接收來自不同網頁的值,再丟給Javascript處理,處理完的值再由Javascript傳給PHP,
PHP在輸出給原來的網頁,

<?php
    // Read raw data (json string) from request body. <Ref: http//goo.gl/GBKjBA>
    $jsonInput = file_get_contents ('php://input');
    // Decode json string to array. <Ref: http//goo.gl/cZe5>
    $jsonArray = json_decode ($jsonInput, true);
    // Output json data with UTF-8 encode
    header ('Content-type: application/json; charset=utf-8');
    // Encode array to json string
    $jsonOutput = json_encode ($jsonArray);
    // Make outputting
    echo $jsonOutput;
    ?>








    <meta charset="utf-8">
    <title>PHP API sample</title>
    <script src="jquery-1.11.3.js"></script>


    <form>
        <input id="level" placeholder="Your name" />
        <input type="submit" value="Submit" />
    </form>
    <br />
    <div id="result"></div>
    <script>
    $(function () {
      // When first form submit
      $('form').eq (0).submit (function (e) {
          var url = 'quote.php'
            , level = $('#level').val();
        // Post json data to url
        $.post (url, JSON.stringify ({Monsterlevel: level}), function (res) {
          $('#result').html ('Retrieve from api.php: <b>' + res + '</b>');
        });
        // Prevent default event of submitting
        e.preventDefault();
      });
    });
    </script>

小弟研究出來的方法如上,可是將他們放在同一個頁面時,該網頁進來就直接輸出完整的Javascript程式碼....
請教一下各位大大,在同一頁面需將Javascript變數傳給PHP的話該如何實作??

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

10
fillano
iT邦超人 1 級 ‧ 2016-03-03 11:42:01
最佳解答

這兩個程式要放在一起的話,通常輸出html是用http get方法來做請求,送資料給api則是用http post。你可以在php利用$_SERVER['REQUEST_METHOD']來取得請求使用的方法來判斷。(我猜你是要問這個)如果是http get,那$_SERVER['REQUEST_METHOD']的值會是'GET',依此類推,http post的值是'POST'。

b32138059 iT邦新手 5 級 ‧ 2016-03-03 12:10:26 檢舉

謝謝大大指教,因為我對PHP是完全不懂,請問一下,是在php程式碼接收值的方法改成大大你說的這個$_SERVER['REQUEST_METHOD']嗎??

fillano iT邦超人 1 級 ‧ 2016-03-03 13:25:04 檢舉

你原來分成兩個的程式是可以跑的。

如果你要的是在同一支php顯示表單及收post,可以先用$_SERVER['REQUEST_METHOD']判斷,如果是GET,就顯示html,如果是POST,就收post來的資料並顯示json。

b32138059 iT邦新手 5 級 ‧ 2016-03-03 14:46:07 檢舉

感謝大大,我試試看

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

前情提要

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

觀念解說

使用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去接收。

相關問題

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

我要發表回答

立即登入回答