iT邦幫忙

0

【javascript+php】【紀錄】寫php的時候需要傳值給javascript該怎麼辦--遇到問題的解決方式

這是第一次在這裡發文,這是一篇記錄自己在寫php的時候遇到的問題紀錄與找到的解決方法。

遇到的問題:按下按鈕之後要呼叫寫在同一頁的Javascript function,卻不知道要如何傳值。

之前網路上查到的方式幾乎都是使用另外一個頁面去傳值,但是都不符合自己的需求,所以嘗試了這個方法,結果是可行的。

如果想要利用javascript宣告的function,將php裡面宣告的變數num印出來的話(或是做其他事情),有以下步驟:

  1. 在button裡面呼叫javascript的函式(function)並加上「」利用php的echo方式傳值給javascript的函式把php裡的變數傳過去。
  2. 在javacript的函式寫說要接一個變數,然後以彈跳式式窗alert顯示。

以下是範例:

    <?php $num = 10; ?><!--在php裡面宣告一個變數。-->
    <!--使用按鈕呼叫script裡面的function print,並加上php echo $num傳過去。-->
    <input type="button", value="test, click me" onclick = "print(<?php echo $num; ?>)">
	<script>//script可以寫在同一頁的任何地方。
        function print(num){//在javacript的函式寫說要接一個變數,然後以彈跳式式窗alert顯示。
            alert(num);//以彈跳式式窗alert顯示。
        }
	</script>

謝謝大家耐心地觀看。


1 則留言

0
wolfwang
iT邦新手 3 級 ‧ 2018-11-26 11:02:11

通常這種情境,應該是 PHP 有一支 API 供 JS 去呼叫,透過 Ajax 的方式來取得值。

用 jQuery 來說明的話,模擬的 code 可能長這樣:

	<script>
      $(function(){
       function print(){
           $.getJSON("getNum.php",function(data){
              alert(data.num);
            })
        }
      });

	</script>

然後 PHP API getNum.php 的簡單的作法為:

<?php

$data = array("num" =>10);

echo json_encode($data);

這樣前、後端的 code 就不會混在同一頁裡面,比較方便讓前後端工作分開來。

nyakui iT邦新手 5 級‧ 2018-11-26 14:18:54 檢舉

謝謝你的建議,對我幫助很大~

token 可能就直接夾在裡面了

<form>
    <input type='hidden' name='token' value='<?php echo $token;?>'>
    <!--other inputs here-->
    <input type='submit' value='送出'>
</form>

如果要直接放 js 變數

<script>
    var token='<?php echo $token;?>';
</script>

我要留言

立即登入留言