我正在尝试将jQuery中的序列化数据发布到php,如下所示。
$.post(location.href, $('form').serialize(), function(data){
// do something
});
它运作良好。但有没有办法可以为序列化数据设置名称,所以我可以将该名称用于isset()
函数?它看起来像这样:
我们假设表格有
<input type="text" name="input1">
<input type="text" name="input2">
file.js
$.post(location.href, {data:$('form').serialize()}, function(data){
// do something
});
file.php
<?php
if (isset($_POST['data'])) {
// retrieve the data in the serialized string and use it in a function
helperFunction($_POST['input1'], $_POST['input2']);
}
?>
<html>
// rest of the layout
</html>
我不想使用按钮提交表单。我不想要它的原因是:
<button type="submit">Submit</button>
,然后在我提交表单后刷新页面(我不想要它)时,将表单提交到同一页面会要求重新提交。答案 0 :(得分:2)
您可以添加隐藏变量并在后期值中进行检查。
<input type="hidden" name="check_val" value="chek_val" />
<?php
if(isset($ _ POST ['check_val'])){
} ?&GT;
答案 1 :(得分:1)
由于PHP从提交的POST数据中解析数组,您可以像这样操作:
<input type="text" name="inputs[data][1]">
<input type="text" name="inputs[data][2]">
<?php
if( isset( $_POST[ 'inputs' ][ 'data' ] ) ) {
helperFunction( $_POST[ 'inputs' ][ 'data' ][ '1' ], $_POST[ 'inputs' ][ 'data' ][ '2' ] );
}
?>
但实际上我没有看到为什么不做更简单的原因:
<input type="text" name="input1">
<input type="text" name="input2">
<?php
if ( isset( $_POST[ 'input1' ] ) &&
isset( $_POST[ 'input2' ] ) ){
helperFunction( $_POST[ 'input1' ], $_POST[ 'ipnut2' ] );
}
?>