2015-04-05 56 views
0

我在搜索此问题的帮助时遇到了this earlier thread,但没有响应,因此我不知所措。无法运行php代码,使用角度路由问题

我想提交一个表单并收到一个php变量作为回报。我自己运行测试代码时没有问题,但是当启用路由功能放入角度应用程序时,我没有任何结果。在路由页面上单击提交不会发生任何事情。有什么我可以解决这个问题吗?

这里是我的代码:

HTML + PHP只

<form method="post"> 
    <input type="submit" value="Submit" name="submit"> 
</form> 

<?php if (isset($_POST['submit'])) { 
    echo "IF GOOD :)"; 
} else { 
    echo "ELSE BAD :("; 
}?> 

HTML

<div ng-app="app"> 
    <div ng-view></div> 
</div> 

JS

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

app.config(function ($routeProvider) { 
    $routeProvider 
     .when('/', { 
      templateUrl: 'pages/begin.html', 
      controller: 'mainController', 
      activePage: 'begin' 
     }); 
}); 
+0

为什么你需要使用php?你可以在使用它的时候使用角度来做这件事。使用PHP仅用于数据插入更新删除。否则处理所有使用角度 – 2015-04-05 05:16:30

+0

我使用PHP来打电话给zillow api并返回房屋信息。对不起,这不是很清楚,我只是想先做测试工作,然后再转向其他任何东西。 – cul8r 2015-04-05 05:21:53

+0

你也可以使用角度来实现 – 2015-04-05 05:23:14

回答

0

你必须与action=""属性提供<form>使你的代码工作。

manual

由于在客户端的角度应用形式的作用比传统的往返应用 不同,它是理想的 浏览器不表单提交转化为全页面重新加载 将数据发送到服务器。相反,应该触发某些javascript逻辑 来处理以特定于应用程序的方式提交的表单提交。

因此,除非元素具有指定的操作属性 ,否则Angular会阻止默认操作(表单提交 到服务器)。

但是,Angular鼓励您使用ngSubmit和不会导致页面重新加载的ajax请求。

1

使用PHP数据插入/更新/删除。采用了棱角分明

尝试这样

bengin.html

<form > 
    <input type="submit" value="Submit" name="submit" ng-click="submit()"> 
</form> 

mainController

$scope.submit=function(){ 
    $http.post('msg.php', {submit:'hello word!'}). 
    success(function(data, status, headers, config) { 
    // this callback will be called asynchronously 
    // when the response is available 
    }); 
} 

创建文件名msg.php其他处理一切

msg.php

<?php if (isset($_POST['submit'])) { 
    echo "IF GOOD :)"; 
} else { 
    echo "ELSE BAD :("; 
}?>