首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向php文件提交角形表单

向php文件提交角形表单
EN

Stack Overflow用户
提问于 2016-10-18 03:29:10
回答 1查看 713关注 0票数 2

我试图将下面的表单提交到一个名为time.php的php文件中,但是它不能工作,即使当我检查控制台时也没有错误,这是很清楚的。我不知道我哪里可能出了问题。

代码语言:javascript
复制
<form ng-controller="testCtrl" class="customform" data-ng-init="init()">
<div class="s-10 1-10">
    <input ng-model="firstName" pattern=".{2,100}" title="2 to 100 Characters" placeholder="First Name" type="text" required />
</div>
<div class="s-10 1-10">
    <input ng-model="lastName" pattern=".{5,255}" title="5 to 255 Characters" placeholder="Last Name" type="text" required />
</div>
<div class="s-12 l-10"><input ng-model="acNumber" placeholder="A/C Number" title="Employee Number, i.e c1234567" type="text" required /></div>
<div class="s-12 l-10"><input ng-model="email" placeholder="Email" title="Email" type="email" required /></div>
<div class="s-12 l-10">
    <select ng-model="selectedRequestType" ng-options="requestType as requestType.type for requestType in requestTypes" required="required">
        <option value="" disabled selected>Request Type</option>
    </select>
</div>
<div class="s-12 l-10">
    <select ng-show="selectedRequestType.type == 'Work Request'" ng-model="selectedWorkRequestType" ng-options="workRequestType as workRequestType.type for workRequestType in workRequestTypes">
        <option value="" disabled selected>Work Request Type</option>
    </select>
</div>
<div class="s-12 l-10">
    <select ng-show="selectedWorkRequestType.type == 'New file(s) from source'" ng-model="selectedFile" ng-options="file as file.type for file in files">
        <option value="" disabled selected>Files</option>
    </select>
</div>
<div class="s-12 l-10">
    <select ng-show="selectedWorkRequestType.type == 'New file(s) from source'" ng-model="selectedLibrary" ng-options="library as library.type for library in libraries">
        <option value="" disabled selected>Does Library Exist</option>
    </select>
</div>
<div class="s-12 l-10">
    <select ng-show="selectedWorkRequestType.type == 'Code Automation' || selectedWorkRequestType.type == 'Amendments to existing code'" ng-model="selectedOutput" ng-options="outputType as outputType.type for outputType in outputTypes">
        <option value="" disabled selected>Output</option>
    </select>
</div>
<div class="s-12 l-10">
    <select ng-show="selectedLibrary.type == 'Yes' || selectedRequestType.type == 'Incident'" ng-model="selectedPlatformOutput" ng-options="platformOutput as platformOutput.type for platformOutput in platformOutputs">
        <option value="" disabled selected>Platform Output</option>
    </select>
</div>
<div class="s-12 l-10">
    <input ng-show="selectedOutput.type == 'SAS' || selectedPlatformOutput.type =='SAS'" ng-model="sasLibraryName" type="text" placeholder="SAS Library Name: SPDS Exploit" />
</div>
<div class="s-12 l-10">
    <input ng-show="selectedOutput.type == 'SAP IQ' || selectedPlatformOutput.type =='SAP IQ'" ng-model="sapIQtext" placeholder="SAP IQ" >
</div>
<div class="s-12 l-10">
    <input ng-show="selectedOutput.type == 'Hadoop' || selectedPlatformOutput.type =='Hadoop'" placeholder="Library Name: HDFS_Exploit" ng-model="hadoop" />
</div>
<div class="s-12 l-10">
    <input ng-show="selectedWorkRequestType.type == 'Amendments to existing code'" placeholder="Output Dataset Name" ng-model="outputDataset" type="text"/>
</div>
<div class="s-12 l-10">
    <input ng-show="selectedLibrary.type == 'No'" type="text" ng-model="productName" Placeholder="Product Name" />
</div>
<div class="s-12 l-10">
    <input ng-show="" placeholder="Upload Text File" type="file" ng-model="uploadTextFile" title="Please upload a txt file with the layout - to " multiple />
</div>
<div class="s-12 l-10">
    <input ng-show="selectedRequestType.type == 'Incident'" type="text" ng-model="tableName" placeholder="Dataset/Table Name" />
</div>
<div class="s-12 l-10">
    <textarea placeholder="Special Instructions" ng-model="specialInstruction" rows="5"></textarea>
</div>
<div class="s-12 l-10">
    <input ng-show="selectedRequestType.type == 'Incident'" ng-model="uploadScreenshot" placeholder="Upload Screenshot of error" type="file" multiple/>
</div>
<div class="s-12 l-10">
    <select ng-show="selectedRequestType.type == 'Work Request'" ng-model="selectedFrequency" ng-options ="frequency as frequency.type for frequency in frequencies">
        <option value="" disabled selected>Frequency</option>
    </select>
</div>
<div class="s-12 l-10">
    <select ng-show="selectedFrequency.type == 'Weekly'" ng-model="selectedWeekly"  ng-options ="weekly as weekly.type for weekly in weeklies">
        <option value="" disabled selected>Weekly Frequency</option>
    </select>
</div>
<input type="hidden" ng-model="token" value="<?php echo Token::generate()?>">
<div class="s-4"><button type="submit" id="submit" class="btn-custom btn btn-large btn-block" ng-click="sendRequest()">Request</button></div>

请注意: ng-app="app“位于标题中:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en-US" ng-app="app">

下面的代码是控制器,我相信问题就在这里:

代码语言:javascript
复制
    var app = angular.module('app', []);
app.controller('testCtrl', ['$scope', '$http', function($scope, $http) {

$scope.sendRequest = function(){
    var data= {
        'firstName' :$scope.firstName,
        'lastName' :$scope.lastName,
        'acNumber' :$scope.acNumber,
        'email' :$scope.email,
        'selectedRequestType' :$scope.selectedRequestType,
        'selectedWorkRequestType' :$scope.selectedWorkRequestType,
        'selectedOutput' :$scope.selectedOutput,
        'selectedFrequency' : $scope.selectedFrequency,
        'selectedWeekly' : $scope.selectedWeekly,
        'selectedFile' : $scope.selectedFile,
        'selectedLibrary' : $scope.selectedLibrary,
        'selectedPlatformOutput' : $scope.selectedPlatformOutput,
        'productName' : $scope.productName
    };


    $http({
        url: "time.php",
        method: "POST",
        headers: {'Content-Type': 'application/x-www-form-urlencoded'},
        data: data
    }).success(function(data, status, headers, config) {
        //Success code
    }).error(function(xhr) {
        //Failure code
        console.log(data);
        console.log(xhr.responseText);
    });

    return false;
  //  $window.location.href ='/time.php';

};

$scope.init = function (){
    $scope.workRequestType = 'test';
    $scope.requestTypes = [
        {'type':'Work Request'},
        {'type': 'Incident'}
    ];
    $scope.workRequestTypes = [
        {'type': 'Amendments to existing code'},
        {'type': 'Code Automation'},
        {'type': 'New file(s) from source'}
    ];
    $scope.outputTypes = [
        {'type': 'SAS'},
        {'type':'SAP IQ'},
        {'type': 'Hadoop'}
    ];
    $scope.frequencies = [
        {'type' : 'Daily'},
        {'type': 'Monthly'},
        {'type': 'Weekly'}
    ];
    $scope.weeklies = [
        {'type': 'Monday'},
        {'type':'Tuesday'},
        {'type': 'Wednesday'},
        {'type':'Thursday'},
        {'type':'Friday'},
        {'type':'Saturday'},
        {'type':'Sunday'}
    ];
    $scope.files = [
        {'type': 'New File(s)'},
        {'type': 'Add to existing file received'}
    ];
    $scope.libraries = [
        {'type':'Yes'},
        {'type':'No'}
    ];
    $scope.platformOutputs = [
        {'type': 'SAS'},
        {'type':'SAP IQ'},
        {'type': 'Hadoop'}
    ];
    $scope.firstName= null;
    $scope.lastName= null;
    $scope.acNumber= null;
    $scope.email= null;
    $scope.selectedRequestType= null;
    $scope.selectedWorkRequestType= null;
    $scope.selectedOutput= null;
    $scope.sasLibraryName = null;
    $scope.sasIQtext = null;
    $scope.selectedFrequency = null;
    $scope.selectedWeekly = null;
    $scope.selectedFile = null;
    $scope.selectedLibrary = null;
    $scope.selectedPlatformOutput = null;
    $scope.productName = null;
};
}]);

我还在学习角度,所以我可能犯了一个简单的错误

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-18 03:45:12

如果正在发生HTTP请求,但PHP无法访问POST变量,请尝试将数据从对象转换为字符串。

代码语言:javascript
复制
$http({
        url: "time.php",
        method: "POST",
        headers: {'Content-Type': 'application/x-www-form-urlencoded'},
        data: $httpParamSerializerJQLike(data),
    })

字符串应该如下所示: firstName=John&acNumber=1234

使用以下方法将$httpParamSerializerJQLike服务传递到控制器:

代码语言:javascript
复制
app.controller('testCtrl', ['$scope', '$http', '$httpParamSerializerJQLike', function($scope, $http, $httpParamSerializerJQLike) {
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40099022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档