成功提交后,有JS Run Alert Box

时间:2011-11-16 21:33:13

标签: php javascript

PHP脚本 填写表单后执行的php脚本:

   <?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
        }

        ?>

如果脚本到达window.alert('Submitted. Thank you.')

,我如何让PHP运行此JS代码:#HERE

2 个答案:

答案 0 :(得分:0)

您可以结束PHP并重新启动它,然后将JS放在那里,或者如果您想在PHP中嵌入它,那么#here然后如何回显/打印它:

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

答案 1 :(得分: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编码响应。