2017-08-23 57 views
-1

這段代碼有什麼問題?它什麼都不做。使用PHP調用Java代碼函數

截至目前$_GET工作正常,並從服務器端收到所有返回值。所有數據都可用:$ _GET ['PNREF']; & $ _GET ['EMAIL'];如果我在if語句之外擁有它們,則會收到罰款數據。

<?php 

if($_GET['RESPMSG'] != "Approved"){ 

    echo '<script type="text/javascript">', 
    'declined();', 
    '</script>'; 

}else{ 

    echo '<script type="text/javascript">', 
    'approved();', 
    '</script>'; 

    $tranid = $_GET['PNREF']; 
    $email = $_GET['EMAIL']; 
} 

?> 

我試圖訪問位於<body>

<script> 

function approved(){ 
    alert("approved func"); 
    document.getElementById('oops_id').style.display = "none"; 
    document.getElementById('thank_id').style.display = "block"; 

} 
function declined(){ 
    alert("declined func"); 
    document.getElementById('thank_id').style.display = "none"; 
    document.getElementById('oops_id').style.display = "block"; 
} 

</script> 
+0

怎麼都包含在頁面兩個JS的功能呢? – nnnnnn

+0

只需要在身體的

1

這兩個功能我不希望從你的腳本中的任何行動。

PHP在您的服務器上執行,而Javascript在客戶端上執行。

在您的PHP if聲明中,您只是,包括函數調用在加載頁面(異步)時有時執行。

您需要根據某些用戶交互,在JavaScript腳本中調用declined()approved()函數。

我需要看到更多的代碼才能做出比這更多的建議。

+0

此表單確實從$ _GET成功接收數據 - 我已經過測試。我肯定知道$ _GET ['PNREF']; &$ _GET ['EMAIL'];接收值。所以我希望我的問題只是在糟糕的陳述中。 – NewCodeMan

+0

是的,但你需要一個JavaScript腳本來調用這些函數。你目前有PHP只包含函數調用。例如,你可以選擇一個按鈕來獲得一個'on_click'事件,然後THEN調用相應的函數。這隻會發生在客戶端(在Web瀏覽器內)。沒有什麼會被髮回到PHP進行處理。請查看客戶端服務器型號:https://en.wikipedia.org/wiki/Client%E2%80%93server_model – Sablefoste

+0

更新的問題 – NewCodeMan

0

您可能想要重新思考如何實現此目的:一種方法是根據請求變量直接將元素的樣式標記爲「display:none」或「display:block」。

<?php 
    $declined = $_GET['RESPMSG'] != 'Approved'; 
?> 

然後在html:

<div id="thank_id" style="display: <?php echo $declined ? "none" : "block"; ?>;"> 
    <!-- thank div contents here --> 
</div> 
<div id="oop_id" style="display: <?php echo $declined ? "block" : "none"; ?>;"> 
    <!-- oop div contents here --> 
</div> 

如果你真的想你的JavaScript功能運行時,您可以在頁面運行功能時使用上面的PHP部分中的身體負荷以確定運行哪個函數:

<body onLoad="<?php echo $declined ? "declined();" : "accepted();"; ?>"> 
+0

謝謝@Cubis我會盡量簡化您的建議。 – NewCodeMan