iT邦幫忙

0

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

b32138059 1 年前2819 瀏覽

小弟新手剛入門,不得要領,請教各位大大一下,我需要在同一個頁面放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的話該如何實作??

1 個回答

10
fillano
iT邦超人 1 級 ‧ 1 年前
最佳解答

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

b32138059 iT邦新手 5 級 ‧ 1 年前 檢舉

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

fillano iT邦超人 1 級 ‧ 1 年前 檢舉

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

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

b32138059 iT邦新手 5 級 ‧ 1 年前 檢舉

感謝大大,我試試看

我要發表回答

立即登入回答