Javascript 将角度表单提交到php文件

Javascript 将角度表单提交到php文件,javascript,php,angularjs,forms,Javascript,Php,Angularjs,Forms,我正试图将下面的表单提交到一个名为time.php的php文件中,但它不起作用,即使我检查控制台时没有错误,也很清楚。我不确定我会错在哪里 <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 C

我正试图将下面的表单提交到一个名为time.php的php文件中,但它不起作用,即使我检查控制台时没有错误,也很清楚。我不确定我会错在哪里

<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>

我仍在学习Angular,因此我可能犯了一个简单的错误

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

$http({
        url: "time.php",
        method: "POST",
        headers: {'Content-Type': 'application/x-www-form-urlencoded'},
        data: $httpParamSerializerJQLike(data),
    })
字符串应该如下所示:firstName=John&acNumber=1234

通过以下方式将$httpParamSerializerJQLike服务传递到控制器:

app.controller('testCtrl', ['$scope', '$http', '$httpParamSerializerJQLike', function($scope, $http, $httpParamSerializerJQLike) {

是HTTP请求没有发出,还是发出但没有返回?请求到达服务器了吗?@JuanCamiloMejia控制台上没有显示任何内容,因此我相信它没有到达服务器Angular的
$httpParamSerializer
比手动编码工作得好得多~我尝试了解决方案,但我还是什么也没拿到console@kya上面发布的成功回调没有控制台,如果它工作正常,那么控制台上不会有任何内容。你有没有检查过网络选项卡以查看是否有HTTP请求发出?@RyanJenkin我明白你的意思,在网络选项卡上,它到达文件time.php。谢谢。现在唯一的问题是在成功地将数据获取到time.php之后,从当前页面重定向到“成功页面”。你能帮我吗?@kya使用Angular的$location服务将重定向添加到success()回调中:例如$location.path(“/successpage”);
$http({
        url: "time.php",
        method: "POST",
        headers: {'Content-Type': 'application/x-www-form-urlencoded'},
        data: $httpParamSerializerJQLike(data),
    })
app.controller('testCtrl', ['$scope', '$http', '$httpParamSerializerJQLike', function($scope, $http, $httpParamSerializerJQLike) {