2011-11-16 53 views
0

PHP腳本 是一次形式執行PHP腳本填寫:有無JS運行警告框,在成功提交

<?php  
    $connect = mysql_connect($h, $u, $p) or die ("Connect Submit at this time."); 
     mysql_select_db($db); 

     ## Escape bad input including '/', '"', etc 
     //////////////////////////////////////////////////////////////// 
     if(!empty($_POST['InterestedEmail'])) 
      $subscriberEmail=mysql_real_escape_string($_POST['InterestedEmail']); 
     //////////////////////////////////////////////////////////////// 
     if(!empty($_POST['InterestedBrowser'])) 
      $subscriberBrowser=mysql_real_escape_string($_POST['InterestedBrowser']); 
     //////////////////////////////////////////////////////////////// 

     ## check for nmll values, if all are set, INSERT 
     if (isset($_POST['submit'])) { 
     $query="INSERT INTO launching(lauEmail, lauBrowser) 
     values('$subscriberEmail', '$subscriberBrowser')"; 
     mysql_query($query) or die(mysql_error()); 
      #HERE 
     } 

     ?> 

如何讓PHP運行這個JS代碼:window.alert('Submitted. Thank you.')一次腳本到達#HERE

回答

0

,你可能最終的PHP並重新啓動它,只是把JS那裏,或者如果你想在你有#here然後怎麼樣回聲/打印它PHP在那裏將它嵌入:

echo "<script type=\"text/javascript\">"; 
echo "window.alert('Submitted. Thank you.')"; 
echo "</script>"; 
0

令人困惑的是服務器端和客戶端腳本。 PHP在服務器上運行,JS在客戶端上運行。沒有辦法讓PHP顯示警報或運行任何JS代碼,客戶端/瀏覽器必須這樣做。雖然你可以輸出一個簡單的JS片段來實現這一點,但你迫使用戶重新加載頁面(這可能包含他們剛剛填寫的表單,這是令人困惑的,或空白頁面與單個警報)。

一個更直觀和用戶友好的方法是使用AJAX來防止重新加載表單提交頁面。下面是使用jQuery一個簡單的例子:

<script type="text/javascript"> 
// Send an AJAX request to the server 
$.ajax({ 
    type: 'POST', 
    url: 'http://www.example', // Change this to your URL 
    data: { submit: 'true', InterestedEmail: 'something', InterestedBrowser: 'something' }, // Fetch the data from the <input> elements here 
    success:function(data){ 
    if(data.success) { 
     window.alert('Submitted. Thank you.'); 
    } 
    }, 
}); 
</script> 

然後,修改你的PHP腳本發送某種響應的(我使用JSON):

if(isset($_POST['submit'])) 
{ 
    ... 
    echo json_encode(array('success' => true)); 
    exit; 
} 

這個例子是不完整的,但是,作爲您需要爲通過AJAX返回的任何數據發送JSON編碼響應。

+0

我認爲這是更優雅的解決方案。但是實施起來也比較困難。 – meow