我可以解释http_build_query($ _ POST)所以我可以将它保存到CakePHP中的数据库吗?

时间:2009-07-01 09:00:12

标签: jquery cakephp cakephp-1.2

我在FormBuilder的应用程序中使用CakePhp和jQuery。  我有像

那样的形式
<form action="/cake_1.2.1.8004/index.php/results/submit1" method="post"
                                                          id="ResultSubmit1Form">
    <fieldset style="display: none;">
        <input type="hidden" value="POST" name="_method"/>     
    </fieldset>

    <div class="input text">
        <label for="1">Doj</label>
        <input type="text" value="" style="width: 300px;" id="1" name="Doj"/>
    </div>

    <div class="input text">
        <label for="2">Name</label>
        <input type="text" value="" style="width: 300px;" id="2" name="Name"/>
    </div>
    <div class="input textarea">
        <label for="3">Address</label>
        <textarea style="height: 300px;" id="3" rows="6" cols="30" name="Address"/>
    </div>
    <div class="input text">
        <label for="4">Age</label>
        <input type="text" value="" style="width: 200px;" id="4" name="Age"/>
    </div>
    <br/><br/>
    <div class="submit">
        <input type="submit" value="submit"/>
    </div>
</form>

我希望获得表单中输入的所有值。

使用jQuery Form插件我使用以下代码来检索像

这样的值
<script type="text/javascript">
    $(document).ready(function(){
        $("#submit").eq(0).click(function (){

            var serializedFormStr = $("#ResultSubmit1Form :input[value]").serialize();  
            alert(serializedFormStr);
            $.ajax({
                type: "POST",
                url: "http://localhost/cake_1.2.1.8004/index.php/results/submit1",
                data: serializedFormStr,
                success: function(msg){
                    alert( "Data Saved: " + msg);
                }//success
            });//ajax
        });
    });//ready
</script>   

alert(serializedFormStr);显示为

        _method=POST&Doj=07%2F09%2F2009&Name=aruna&Address=xyz&Age=22 

我在我的Cakephp控制器中检索到

   function submit1()
   {
       echo "In controller  ".http_build_query($_POST);//echoes correctly
   }

如何从此查询字符串中获取单个数据,以便将其保存到数据库中。 请建议我..

2 个答案:

答案 0 :(得分:1)

我遇到了问题,发现http_build_query有三个参数可用“自5.1.2添加了arg_separator参数。”(本地Ms-windows文件:mk:@MSITStore:D:\ Reference \ oq \ php \ php_manual.chm :: / res / function.http-build-query.html在网上http://php.net/manual/en/function.http-build-query.php

当我执行$ _POST var转储时,我的第二个和第三个varibale名称以amp; rowsPerPage和amp; startNumber作为前导&amp;已被吃掉了

无论出于何种原因,我必须按照自己的方式做到这一点,

$postdata = http_build_query(
   array(
    'whereRequest' => $whereRequest,
    'rowsPerPage' => '20',
'startNumber' => '0'
   )
   ,'','&'
);

在我的情况下不需要第二个参数(numeric_prefix - 这是一个字符串),并且我明确地将arg_separator参数设置为'&amp;',这是我确定的,默认为任何方式。

帮助文件示例指示&ampamp;作为选项但不起作用,

在我明确将arg_separator参数设置为:'&amp;'

后,一切正常

答案 1 :(得分:0)

我不明白......你为什么打电话给http_build_query?你只需要肯定看$_POST['Doj']

你可以像这样循环$ _POST:

foreach ($_POST as $key => $value)
    echo 'The value of ' . $key . ' is ' . $value;

或者获取所有键的数组:

$keys = array_keys($_POST);
// $keys is now array('Doj', 'Name', 'Address', 'Age')

这有帮助吗?