从PHP脚本获取响应

5

我创建了一个包含多个表单的HTML站点,使用jQuery对话框UI来进行显示,并使用jQuery表单插件进行Ajax提交。

表单看起来像这样:

<form id="login_form" action="admin.php" method="post">
    Username: <input type="text" name="username" id="username"/><br/>
    Password: <input type="password" name="password" id="password"/>
</form>

...表单选项如下所示:

$('#login_form').dialog({
    buttons:{
        "Login": function(){
        var options = { 
        success: function(data){
            alert(data);
                $(this).dialog("close");
                $('#news_form').dialog("open");
            },
            timeout: 3000,
            fail: function(data){
                alert('fail');
            },
            clearForm: true
        }; 

        // bind form using 'ajaxForm' 
        $('#news_form').ajaxSubmit(options); 
        },
        "Exit": function(){
            $(this).dialog("close");
        }
    }
});

...而且php文件很简单:

<?php
    $data = 'Herro!';
    echo $data;
?>

问题在于成功提交表单后,返回的是提交源html页面,而不是像我预期的那样返回“Herro!”。那么我做错了什么?
admin.html和admin.php文件都在同一个目录下。
此外,网页是通过xampp在本地运行的,但我也尝试将其放在Web服务器上,但没有改善。
最终编辑:问题实际上是因为我在DOM中调用了不同的表单对象来提交数据,这个表单没有设置action属性。感谢大家快速解决问题。

你尝试过使用console.log输出信息吗? - Able Alias
听起来有点像权限错误..你使用的是什么操作系统? - msturdy
@msturdy Win 7 x64专业版 - Denis Kralj
你能展示一下你在选项中设置了什么吗?$('#news_form').ajaxSubmit(options); - piddl0r
@Loki 你尝试设置 dataType 选项了吗? - piddl0r
显示剩余4条评论
2个回答

2

$('#news_form').ajaxSubmit(options);修改为$('#login_form').ajaxSubmit(options);


1
尝试在PHP文件中将结果包装在JSON对象中,然后在JavaScript端,您现在可以使用任何标准的JSON JavaScript库(您可以从这里下载一个:http://www.JSON.org/json2.js)解码此JSON对象。
然后使用以下代码:

admin.php:

<?php
$data = json_encode('Herro!');
echo $data;
?>

然后在您的html(javascript)中,您可以进行这个小调整:

 <script>
  var result; //adjustment 1
 $('#login_form').dialog({
buttons:{
    "Login": function(){
    var options = { 
    success: function(data){
            result = JSON.parse(data); //adjustment 2
           alert(result);  //adjustment 3
            $(this).dialog("close");
            $('#news_form').dialog("open");
        },
        timeout: 3000,
        fail: function(data){
            alert('fail');
        },
        clearForm: true
    }; 

    // bind form using 'ajaxForm' 
    $('#news_form').ajaxSubmit(options); 
    },
    "Exit": function(){
        $(this).dialog("close");
        }
}
});
</script>

记得在页面中引用你下载的json2.js文件。如果这有帮助,请告诉我。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接