Javascript 单输入多条件表单,是否可行?
我有一个用于产品搜索表单的服务器端函数,它可以接受几个参数,如名称、产地、产品编号和类别 我希望能够,如果可能的话,使用我的表格,并能够有一个结果,根据这些不同的标准与单一的输入 我的代码: 在my service.js中:Javascript 单输入多条件表单,是否可行?,javascript,angularjs,symfony,ionic-framework,Javascript,Angularjs,Symfony,Ionic Framework,我有一个用于产品搜索表单的服务器端函数,它可以接受几个参数,如名称、产地、产品编号和类别 我希望能够,如果可能的话,使用我的表格,并能够有一个结果,根据这些不同的标准与单一的输入 我的代码: 在my service.js中: var searchProduct = function(form){ var formdata = new FormData(); for (var key in form) { console.log(key, form[key]);
var searchProduct = function(form){
var formdata = new FormData();
for (var key in form) {
console.log(key, form[key]);
formdata.append('form['+key+']', form[key]);
}
return $http({
method : 'POST',
url : url + '/search',
data : formdata,
transformRequest: angular.identity
}).then(function(result) {
return result.data;
},function errorCallback(response) {
});
};
在my controller.js中:
$scope.search = function () {
$ionicLoading.show();
var myform = angular.copy($scope.form);
myform.category = (myform.groupe) ? myform.category.id : "";
AppService.searchProduct(myform).then(function(response){
$scope.list = response;
$ionicLoading.hide();;
});
};
在我的html中:
<form ng-controller="searchCtrl" id="search" class="list" name="myForm" ng-submit="search()" ng-disabled="myForm.$invalid">
<label class="item item-input" id="search" style="">
<i class="icon ion-search placeholder-icon"></i>
<input placeholder="Product" type="text" ng-model="form.name" required>
</label>
<ion-list id="menu-list1">
<ion-item ng-if="list.length<=0" style="text-align: center;">No result</ion-item>
<ion-item ng-repeat="item in list track by $index" ng-click="showProduct(item)">{{ item.name }}</ion-item>
</ion-list>
</form>
/**
* @Route("/api/search", name="api_product_search")
* @Method("POST")
* @param Request $request
*/
public function searchAction(Request $request)
{
if (!$request->isMethod("POST")) {
$response = new JsonResponse("POST only");
$response->setStatusCode(Response::HTTP_BAD_REQUEST);
return $response;
}
if (sizeof($request->request->get('form')) == 0) {
$response = new JsonResponse("This API requires at least one search criterion");
$response->setStatusCode(Response::HTTP_BAD_REQUEST);
return $response;
}
$products = $this->getDoctrine()->getRepository('AppBundle:product')->search($request->request->get('form'));
$results = [];
foreach ($products as $product) {
$results[] = [
'id' => $product[0]->getId(),
'name' => $product[0]->getName(),
'origin' => $product[0]->getOrigin(),
'productNumber' => $product[0]->getProductNumber(),
'category' => $product['category'],
];
}
return new JsonResponse($results);
}