2017-05-05 52 views
1

我想將php語法放到javascript付款完成函數中。我想在javascript語法中包含php語法

1.這是一個JavaScript代碼,將在您的在線支付完成後運行。

<script> 
...... 
function(rsp) { 
    if (rsp.success) { 
     var msg = 'payment success'; 
     msg += 'Store ID : ' + rsp.imp_uid; 
     msg += 'Store deal ID : ' + rsp.merchant_uid; 
     msg += 'Price : ' + rsp.paid_amount; 
     msg += 'Card Authorization Number : ' + rsp.apply_num; 
    } else { 
     var msg = 'Billing failed.'; 
     msg += 'Error reason : ' + rsp.error_msg; 
    } 
    alert(msg); 
} 
</script> 

2.這是PHP代碼,增加了用戶的信用,一旦付款成功完成。

<?php $user_wallet->balance = $user_wallet->balance + $paid_amount;?> 

我想提出這樣的腳本節這裏面的代碼。

if (rsp.success) { 
<?php $user_wallet->balance = $user_wallet->balance + $paid_amount;?> 
} 

但是php語法在腳本部分不起作用。 我該如何解決這個問題?

+0

將user_wallet作爲參數傳入? – nerdlyist

+0

php不會將任何內容寫入javascript流程 – RamRaider

+0

您想根據客戶端(JavaScript)中發生的情況來調節一些服務器端代碼(PHP)? – Nogwater

回答

1

也許你需要的PHP變量寫入js函數,是這樣的:

<script> 
    function(rsp) { 
     if (rsp.success) { 
      <?php 
       $user_wallet->balance = $user_wallet->balance + $paid_amount; 
      ?> 
      var msg = 'payment success'; 
      msg += 'Store ID : ' + rsp.imp_uid; 
      msg += 'Store deal ID : ' + rsp.merchant_uid; 
      msg += 'Price : ' + rsp.paid_amount; 
      msg += 'Card Authorization Number : ' + rsp.apply_num; 
      msg += 'Balance: <?php echo {$user_wallet->balance}; ?>'; 
     } else { 
      var msg = 'Billing failed.'; 
      msg += 'Error reason : ' + rsp.error_msg; 
     } 
     alert(msg); 
    } 
</script> 
+0

這是準確的。但是,PHP函數的JavaScript語法工作? – dlsl

+0

PHP在服務器上運行,在客戶端(瀏覽器)運行javascript,我相信你知道。您可以像上面那樣在JavaScript中包含PHP代碼,但需要將其寫入文檔,否則JavaScript將不知道它是否存在。 – RamRaider

+0

@RamRaider psssst ...你忘記做的事情,PHP沒有被回顯到JS中。 – CD001

0

你需要明白的是,在請求的頁面所有的PHP代碼將先運行,那麼無論它產生(HTML, CSS,Javascript和所有客戶端的東西)發送回客戶端。當客戶端收到響應時,可以運行Javascript。所以你的if語句實際上是在PHP代碼之後運行的。解決您的問題的一個辦法是使用Ajax來請求運行PHP代碼。這將爲你工作。