te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>javascript - angularjs serialize form data - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - angularjs serialize form data - Stack Overflow

programmeradmin2浏览0评论

i wish to serialize the form data in angularjs. following is the controller code:

   function SearchCtrl($scope, $element, $http) {
        $scope.url = 'php/search.php';
        $scope.submit = function() {
            var elem = angular.element($element);
            //var dt = $(elem.parent()).serialize();
            console.log($(elem.parent()).serialize());
            $http({
                method: 'POST',
                url: $scope.url,
                data: 'first=hgf&last=ghfgh',
                headers: {'Content-Type': 'application/x-www-form-urlencoded'}
            }).success(function(data, status) {
                $scope.status = status;
                $scope.data = data;
                $scope.result = data; // Show result from server in our <pre></pre> element
                //var elem = angular.element(e.srcElement);
                //alert($(elem.parent()).serialize());
            }).error(function(data, status) {
                $scope.data = data || "Request failed";
                $scope.status = status;
            });
            return false;
        };
}

edited:

    <!DOCTYPE html>
<html ng-app>
<head>
<title>Search form with AngualrJS</title>
        <script src="../angular-1.0.1.min.js"></script>
        <script src=".min.js"></script>
        <script src="js/search.js"></script>



</head>
<body>
        <div>
        <form ng-controller="SearchCtrl" ng-submit="submit()">
            <label>Search:</label>
            <input type="text" ng-model="keywords" placeholder="enter name...">
            <input type="text" ng-model="desc" placeholder="enter description...">
            <button type="submit">Search</button>
            <p>Try for example: "php" or "angularjs" or "asdfg"</p>
        </form>
<pre ng-model="result">
{{result}}
</pre>
   </div>
</body>

</html>

but nothing gets printed on the console. where am i going wrong?

i wish to serialize the form data in angularjs. following is the controller code:

   function SearchCtrl($scope, $element, $http) {
        $scope.url = 'php/search.php';
        $scope.submit = function() {
            var elem = angular.element($element);
            //var dt = $(elem.parent()).serialize();
            console.log($(elem.parent()).serialize());
            $http({
                method: 'POST',
                url: $scope.url,
                data: 'first=hgf&last=ghfgh',
                headers: {'Content-Type': 'application/x-www-form-urlencoded'}
            }).success(function(data, status) {
                $scope.status = status;
                $scope.data = data;
                $scope.result = data; // Show result from server in our <pre></pre> element
                //var elem = angular.element(e.srcElement);
                //alert($(elem.parent()).serialize());
            }).error(function(data, status) {
                $scope.data = data || "Request failed";
                $scope.status = status;
            });
            return false;
        };
}

edited:

    <!DOCTYPE html>
<html ng-app>
<head>
<title>Search form with AngualrJS</title>
        <script src="../angular-1.0.1.min.js"></script>
        <script src="http://code.jquery./jquery.min.js"></script>
        <script src="js/search.js"></script>



</head>
<body>
        <div>
        <form ng-controller="SearchCtrl" ng-submit="submit()">
            <label>Search:</label>
            <input type="text" ng-model="keywords" placeholder="enter name...">
            <input type="text" ng-model="desc" placeholder="enter description...">
            <button type="submit">Search</button>
            <p>Try for example: "php" or "angularjs" or "asdfg"</p>
        </form>
<pre ng-model="result">
{{result}}
</pre>
   </div>
</body>

</html>

but nothing gets printed on the console. where am i going wrong?

Share Improve this question edited Aug 27, 2012 at 12:14 raina77ow 106k16 gold badges202 silver badges235 bronze badges asked Aug 27, 2012 at 11:24 z22z22 10.1k17 gold badges72 silver badges128 bronze badges 3
  • edited the content to include html. – z22 Commented Aug 27, 2012 at 11:42
  • I wonder why $(elem.parent()).serialize()) is used instead of just $(elem).serialize(). Isn't the $element here a <form> one? – raina77ow Commented Aug 27, 2012 at 11:48
  • i tried with $(elem).serialize(), still no result! what shpuld i do? – z22 Commented Aug 27, 2012 at 11:49
Add a ment  | 

1 Answer 1

Reset to default 10

From the doc:

For a form element's value to be included in the serialized string, the element must have a name attribute.

In your HTML inputs do not have names, hence serialize returns an empty string. Fix this with something like...

<input type="text" name="keywords" ng-model="keywords" placeholder="enter name...">
<input type="text" name="desc" ng-model="desc" placeholder="enter description...">

And, btw, you don't have to wrap Angular $element into jQuery function: $element.serialize() would work ok.

Demo.

发布评论

评论列表(0)

  1. 暂无评论