【问题标题】:How to send json type array $.post to phalcon如何将 json 类型数组 $.post 发送到 phalcon
【发布时间】:2017-07-12 16:32:18
【问题描述】:

我正在尝试发送数据类型为数组 [] 的表单 而且我无法在 phalcon 控制器上处理它们

  <form id="form_access" name="form_access" >
  <table class="table table-hover">

                <tr>
                    <td>
                        <input type='text' name="codigo[]" id="codigo[]" value="100" />                      
                    </td>
                    <td>
                        <input type="text" name="access[]" id="access[]"  value="1" />
                    </td>
                    <td>
                        <input type="text" name="insert[]" id="insert[]"  value="1" />
                    </td>

                    <td>
                        <input type="text" name="edit[]" id="edit[]"  value="1" />
                    </td>
                    <td>
                        <input type="text" name="delete[]" id="delete[]"  value="1" />
                    </td>
                </tr>
                <tr>
                    <td>
                        <input type='text' name="codigo[]" id="codigo[]" value="101" />                      
                    </td>
                    <td>
                        <input type="text" name="access[]" id="access[]"  value="1" />
                    </td>
                    <td>
                        <input type="text" name="insert[]" id="insert[]"  value="1" />
                    </td>

                    <td>
                        <input type="text" name="edit[]" id="edit[]"  value="1" />
                    </td>
                    <td>
                        <input type="text" name="delete[]" id="delete[]"  value="1" />
                    </td>
                </tr>
                <tr>
                    <td>
                        <input type='text' name="codigo[]" id="codigo[]" value="102" />                      
                    </td>
                    <td>
                        <input type="text" name="access[]" id="access[]"  value="1" />
                    </td>
                    <td>
                        <input type="text" name="insert[]" id="insert[]"  value="1" />
                    </td>

                    <td>
                        <input type="text" name="edit[]" id="edit[]"  value="1" />
                    </td>
                    <td>
                        <input type="text" name="delete[]" id="delete[]"  value="1" />
                    </td>
                </tr>

 </table>
 </form>

这是我的 jquery

    str = $("#form_access").serialize();

    $.post("access/save",str, function(data){  
        console.log(data);
    },'json');

这是我的控制器

 public function saveAction()
{

    $this->view->disable();

    if ($this->request->isPost()) {


        $codigo = $this->request->getPost("codigo");
        $access = $this->request->getPost("access");
        $insert = $this->request->getPost("insert");
        $edit = $this->request->getPost("edit");
        $delete = $this->request->getPost("delete");

        $data = array();

        foreach ($codigo as $key => $value)
        {
            $data[] = ($value." - ".$access[$key]." - ".$insert[$key]." - ".$edit[$key]." - ".$delete[$key]);
        }

        $this->response->setJsonContent(array('res' => $data));
        $this->response->setStatusCode(200, "OK");
        $this->response->send();
    }

    $this->response->setStatusCode(400, "NOT FOUND");
    $this->response->send();

}

但在我的控制台中我得到了这个

{"res":["100 -  -  -  - ","101 -  -  -  - ","102 -  -  -  - "]}

显然我只是从我所做的第一次 foreach 中获取数据。

我做错了,请帮忙。

【问题讨论】:

    标签: jquery post phalcon


    【解决方案1】:
    $.ajax({
      type: "POST",
      url: "access/save",
      data: str,
      success: success,
      dataType: 'json'
    });
    

    更多信息在docs

    【讨论】:

    • 也用那个探测,我仍然把它还给它 {"res":["100 - - - - ","101 - - - - ","102 - - - - "] }
    • 好吧,他们也许你想改写你的问题,js没有问题,问题一定在后端..
    【解决方案2】:

    **动作**

       $request = new \Phalcon\Http\Request();
        if ($this->request->isPost()) {
    
            $this->view->disable();
            if ($request->isAjax()) {
    
                $codigo = $this->request->getPost("codigo");
                $access = $this->request->getPost("access");
                $insert = $this->request->getPost("insert");
                $edit = $this->request->getPost("edit");
                $delete = $this->request->getPost("delete");
                $data = array();
                foreach ($codigo as $key => $value) {
                    $data[] = ($value . " - " . $access[$key] . " - " . $insert[$key] . " - " . $edit[$key] . " - " . $delete[$key]);
                }
    
                $this->response->setJsonContent(array('res' => $data));
                $this->response->setStatusCode(200, "OK");
                $this->response->send();
            }
    
        }else{
            $this->response->setStatusCode(400, "NOT FOUND");
            $this->response->send();
        }
    

    Javascript

    $(document).ready(function () {
        // process the form
        str = $("#form_access").serialize();
           $.post("/access/save", str, function (data) {
               console.log(data);
           }, 'json');
    
    });
    

    结果

    Object
    res:Array[3]
    0:"100 - 1 - 1 - 1 - 1"
    1:"101 - 1 - 1 - 1 - 1"
    2:"102 - 1 - 1 - 1 - 1"
    length:3
    

    【讨论】:

      猜你喜欢
      • 2020-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-20
      • 2017-11-06
      • 1970-01-01
      • 2017-11-16
      相关资源
      最近更新 更多