0

因此,我使用 AJAX jQuery 进行了此验证,当我使用另一个文件来托管 ajax 将检查的 PHP 验证部分时,一切正常,然后当我将其传输到必要的文件时,它也被用作页面我的网站一切都停止了工作。

请注意,由于该文件在站点中使用,因此该文件充满了样式、脚本、大量回声等。尽管我确实使用了 if 来隔离 ajax 将使用的 PHP 验证,但它仍然不起作用,尽管当我提醒成功数据,它填充了 CSS 样式调用和我需要的返回值。

是否有任何解决此问题的方法,或者我真的必须使用单独的文件来保存我试图避免的验证代码,因为我试图尽可能地限制文件数量。

阿贾克斯代码:

$("#formadder").click(function() {
    var formname = $('#formname').val();
    if(formname == "") {
        alert("Input Form Name!");
        return false;
    }
    $('#form-feedback').html('<img src="../images/ajax-loader.gif"/>');
    $.ajax({
        url: '../createForm.php',
        type: 'POST',
        data: "formname="+ formname,
        dataType: "json",
        success: function(d) {
            alert(d);
            if(d.stat == "1") {
                $('#form-feedback').html(d.error).css('color','red');
                return false;
            }
            else {
                $('#form-feedback').html('Form Created!').css('color','green');
                window.location.reload();
            }
        }
    });
});

createForm.php 的 PHP 代码是典型的页面文档类型,包括样式和脚本、正文标记,我认为整个包都会干扰 AJAX 调用。

成功提示的内容:

测试

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

test 是我想通过 AJAX 检索的示例输出,但由于某种原因,还返回了 doctype。我在这个上从 AJAX 中删除了 JSON。

4

2 回答 2

1

发生这种情况是因为用于构建页面的相同 html 也被发送到 ajax 调用。我认为最好将这个逻辑放在一个单独的 PHP 文件中,但如果你真的想将它存储在一个文件中,那么请确保检查 $_POST 数组是否为空,如果它提供页面 Html、CSS ,如果不是,则进行验证并发回响应。

if( empty($_POST) ) {
// html, css and js here 
}
else 
{
   // php validation here 
}
于 2013-04-26T18:16:39.157 回答
0
Is there any work around this problem or do i really have to use a separate file just to hold this validation code which **im trying to avoid since im trying to have as limited number of files as possible.**

你有尽可能多的文件,没关系。搜索什么是编程中的抽象

如果你想验证,那么你只需要检查是否在 php 中使用isset function()接收帖子。您可以只在服务器端或客户端使用验证,双方都不需要。

于 2013-04-26T18:22:31.023 回答