当前位置: 首页 > 面试题库 >

Angularjs-表单发布数据未发布?

闻人志
2023-03-14
问题内容

我必须承认我有点困惑…我以前从未做过,而且我显然缺少一些东西

当我通过http.post将数据传递到我的php文件时,我似乎无法收集数据…

有人可以告诉我为什么这行不通吗?

FormData会显示在控制台日志中,并且可以确定正在写入文件。但是,看起来好像没有数据传递。

$scope.submitForm = function() {
    formData = $scope.form;

    $http.post('form2.php', JSON.stringify(formData)).success(function(){

        console.log(formData);
        //window.location.href = "form2.php?data=" + JSON.stringify(formData);

    });
};

这是在我的php文件中。试图将提交表单中的数据写入文件中(只是测试)。

    <?php

        $file = 'form2.txt';
        $data = json_decode($_REQUEST['data'],true);

        //print( '<pre>' );
        //print_r ($data);
        //print( '</pre>' );

        $data_insert = "Name: " . $data['firstname'] .
                    ", Email: " . $data['emailaddress'] . 
                    ", Description: " . $data['textareacontent'] . 
                    ", Gender: " . $data['gender'] . 
                    ", Is Member: " . $data['member'];

        //print $data_insert;

        file_put_contents($file, $data_insert, FILE_APPEND | LOCK_EX);

    ?>

问题答案:

经过大量研究后,我发现这有点像php特有的问题..我在这两篇文章中找到了Answersa。

此处:http :
//sebgoo.blogspot.ca/2013/05/angularjs-post-data-to-
php.html

我最终的PHP代码如下所示。

        $file = 'form2.txt';

        $postdata = file_get_contents("php://input");
        $data = json_decode($postdata, true);


        $data_insert = "Name: " . $data['firstname'] .
                ", Email: " . $data['emailaddress'] . 
                ", Description: " . $data['textareacontent'] . 
                ", Gender: " . $data['gender'] . 
                ", Is a member: " . $data['member'];


        //print $data_insert;

        file_put_contents($file, $data_insert, FILE_APPEND | LOCK_EX);

我还要感谢Mike Brant,其引用的堆栈帖子中的解决方案非常有帮助。.我也投票赞成他的回答。

我的有角度的应用程序代码看起来像这样…由于arturgrzesiak,它与原始代码相比有了很大的改进。

var app = angular.module('myApp', []);

app.controller('FormCtrl', function ($scope, $http) {

var formData = {
    firstname: "default",
    emailaddress: "default",
    textareacontent: "default",
    gender: "default",
    member: false
};


$scope.submitForm = function() {

    $http({

        url: "form2.php",
        data: $scope.form,
        method: 'POST',
        headers : {'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'}

    }).success(function(data){

        console.log("OK", data)

    }).error(function(err){"ERR", console.log(err)})
};

});

最后,用于提交此表单的HTML表单如下所示:

<div ng-app="myApp">

    <form ng-controller="FormCtrl" ng-submit="submitForm()">
        First name:    <br/><input type="text" ng-model="form.firstname">    <br/><br/>
        Email Address: <br/><input type="text" ng-model="form.emailaddress"> <br/><br/>
        Description:<br/> <textarea rows="3" cols="25" ng-model="form.textareacontent"></textarea>
            <br/>
        <input type="radio" ng-model="form.gender" value="female" />Female ...
        <input type="radio" ng-model="form.gender" value="male" />Male <br/>
            <br/>
        <input type="checkbox" ng-model="form.member" />Already a member
            <br/>
        <input type="submit" ngClick="Submit" >
    </form>

</div>

感谢所有提供帮助的人!



 类似资料:
  • 问题内容: 我在python中有以下要求 发送文件,并将表单字段发送到后端。如何使用Angular $ http进行相同操作(发送文件+表单字段)。目前,我确实喜欢这样,但也不确定如何发送文件。 问题答案: 我最近写了一条指令,支持本地多个文件上传。我创建的解决方案依赖于服务来填补$ http服务所标识的空白。我还包含了一条指令,该指令为您的angular模块提供了一个易于使用的API,用于发布文

  • 问题内容: 这是javascript: 这是PHP: 这里的问题是价值。当console.log()用于返回值时,为什么$ _POST [‘email’]为null 。有人可以帮忙吗?我认为这个问题在后面。(不确定) 请不要jQuery 。我知道如何在jQuery中执行此操作,但我想学习如何在javascript中执行此操作。是的,谢谢 问题答案: 你的问题是,与请求为发送不。删除设置内容类型的行

  • 我正在尝试使用axios发送数据,但它发送的响应超出预期。当我使用postman发出相同请求时,它会成功地向我的手机发送通知,以下是postman的响应: 但是使用axios,通知不会发送到我的手机,以下是axios的响应: 这是我的axios代码:

  • 试图将$http.post请求从AngularJS表单发送到Symfony控制器以将表单内容添加到数据库。我可以在AngularJS侧获得"状态"200的成功响应。 但是,在Symfony控制器上,$request- 另外,安装了FOSRestBundle并启用了body listener、param fetcher listener。 我知道我的问题与AngularJS对Symfony控制器的P

  • 问题内容: 我的页面上有一个表单,其中包含大量输入和一些隐藏字段,有人要求我将数据通过“后置数组”传递,只是不确定如何执行此操作, 这是我目前正在做什么的摘要 在我的process.php im中,然后这样调用数据… 有没有办法将其发布为数组?无论如何,我的方法是不好的做法吗? 问题答案: 给每个输入一个数组格式的名称: 然后在PHP 中将是一个数组:

  • 我想将以下(工作的)curl片段转换为RestTemplate调用: 如何正确传递email参数?以下代码将导致404 Not Found响应: 我尝试在PostMan中制定正确的调用,通过在正文中将email参数指定为“form-data”参数,可以使其正常工作。在RESTTemplate中实现此功能的正确方法是什么?