我在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
}
如何从此查询字符串中获取单个数据,以便将其保存到数据库中。 请建议我..
答案 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;',这是我确定的,默认为任何方式。
帮助文件示例指示&amp;
作为选项但不起作用,
在我明确将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')
这有帮助吗?