为什么提交表单有效,但我的ajax不行?

时间:2012-11-14 13:54:46

标签: php jquery

我正在尝试在聊天中创建一个按钮,允许某人打印对话。所以我创建了一个运行PHP脚本的按钮,该脚本创建了一个新文件,将对话写入文件,并编写了以下jQuery。

jQuery AJAX Call

  function OnBeforeUnLoad () {
            $.ajax({
               type: 'GET',
               url: 'deleteFile.php',
               data: {  
                           pageName: ".$pageName."
                     },
               dataType: 'text',
               success: function(data){alert('Good bye 1!');}
            });

            return;
          }

HTML放入页面

<br/><br/><form method="get" action="deleteFile.php"> <input type="submit" value="Close this Window"/> 
             <input type="text" value="'.$pageName.'" name="pageName" style="visibility:hidden"/></form>

deleteFile.php

<?php
$pageName = $_GET['pageName'];
$fullURL = 'PrintPage'.$pageName.'.php';
unlink($fullURL);

echo '<script>window.close();</script>';

?>

当页面出现并点击“关闭此窗口”按钮时,它完全符合我的要求。它删除文件并关闭窗口。但是当我关闭窗口时,我得不到相同的结果(又名OnBeforeUnLoad())。我甚至尝试通过给表单提供deleteFiles的id然后执行$('#deleteFiles')。submit()来触发提交,但它仍然无效。

如何让AJAX在OnBeforeUnLoad函数中运行?

2 个答案:

答案 0 :(得分:4)

表单调用数据pageName,但ajax将其称为url

您可能不希望使用.字符作为前缀和后缀。

答案 1 :(得分:0)

感觉像个假人......在完成所有这些改变之后......我发现我需要做的就是添加

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

到标题。

因为我在php中动态创建页面,所以我忘了我需要读取jQuery。

始终是小事......感谢大家的帮助。