【问题标题】:getting response from a php script从 php 脚本获取响应
【发布时间】:2013-07-13 11:52:48
【问题描述】:

所以我创建了一个包含多个表单的 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 文件都在同一个目录中。

web 也是通过 xampp 在本地运行的,但我也尝试将它放在 web 服务器上,但没有任何改进。

最终编辑:问题实际上是因为我在 DOM 中调用了一个不同的表单对象来提交数据,一个没有设置 action 属性的表单。感谢大家的快速解决方案。

【问题讨论】:

  • 你试过console.log消息吗?
  • 听起来有点像权限错误..您使用的是什么操作系统?
  • @msturdy Win 7 x64 Pro
  • 你能告诉我们你在选项中设置了什么吗? $('#news_form').ajaxSubmit(options);
  • @piddl0r 第 4 行以后。

标签: php jquery ajax forms


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    尝试将结果包装在 JSON 对象中(在 php 文件中),然后在 java 脚本端,您现在可以使用任何标准 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 文件。如果这对您有帮助,请告诉我。

    【讨论】:

      猜你喜欢
      • 2011-05-31
      • 2019-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-19
      • 1970-01-01
      相关资源
      最近更新 更多