Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单输入多条件表单,是否可行?_Javascript_Angularjs_Symfony_Ionic Framework - Fatal编程技术网

Javascript 单输入多条件表单,是否可行?

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]);

我有一个用于产品搜索表单的服务器端函数,它可以接受几个参数,如名称、产地、产品编号和类别

我希望能够,如果可能的话,使用我的表格,并能够有一个结果,根据这些不同的标准与单一的输入

我的代码:

在my service.js中:

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);
}