通过JQuery$.post将JavaScript数组传递给PHP
这段代码获取所有表单变量,并通过AJAX将它们发送到PHP脚本。但是我希望通过JSON编码数组返回javascript的PHP脚本的计算结果以“post”{“uname”:“someNamefromForm”、“email”:“someEmail”、“fname”:“namefromtheform”、“lname”:“lastnamefromform”的形式出现 }... 我现在得到的输出是“uname=e&email=e&fname=e&lname=euname”。。这是我想在页面底部显示的JSON数组,用于调试。有人能告诉我怎么格式化吗 这是我的HTML表单通过JQuery$.post将JavaScript数组传递给PHP,javascript,php,jquery,ajax,json,Javascript,Php,Jquery,Ajax,Json,这段代码获取所有表单变量,并通过AJAX将它们发送到PHP脚本。但是我希望通过JSON编码数组返回javascript的PHP脚本的计算结果以“post”{“uname”:“someNamefromForm”、“email”:“someEmail”、“fname”:“namefromtheform”、“lname”:“lastnamefromform”的形式出现 }... 我现在得到的输出是“uname=e&email=e&fname=e&lname=euname”。。这是我想在页面底部显示的J
<div id="wrapper">
<h2> Validation with AJAX,JQuery,JSON and PHP</h2>
<div class="form-container">
<span id="ajax-message"></span>
<form id="ajax-form" onsubmit="return false;">
<p class="legend">All fields marked with an asterisk are required.</p>
<fieldset>
<legend>User Details</legend>
<div>
<label for="uname">Username <em>*</em></label>
<input id="uname" type="text" name="uname" value="" />
</div>
<div>
<label for="email">Email Address <em>*</em></label>
<input id="email" type="text" name="email" value="" />
</div>
<div>
<label for="fname" class="error">First Name <em>*</em></label>
<input id="fname" type="text" name="fname" value="" size="50" class="error"/>
<p class='note'>All error message go here </p>
</div>
<div>
<label for="lname">Last Name <em>*</em></label>
<input id="lname" type="text" name="lname" value="" size="50" />
</div>
</fieldset>
<div class="buttonrow">
<input type="submit" value="Submit This Form via AJAX" class="button" />
<input type="button" value="Start Again" class="button" />
<a >Refresh this Page</a>
</div>
</form>
</div>
<h3>JSON Array</h3>
<pre id='debug'></pre>
</div>
这是php
<?php
$variable = $_POST['variable'];
echo json_encode($variable);
/*$json = array(
'booleanFlag' => TRUE,
'someText' => "AJAX should be renamed AJAJ",
'anArrayOfData' => array('name' => 'Mickey', 'ears' => 'very Big')
);*/
?>
是否尝试更改$.post方法中的“json”参数
根据文件
因此,我猜如果你给他“json”,他会自动解码返回的数据。你可以像这样直接发送序列化变量:
$("#ajax-form").submit(function(){
var variableToSend = $(this).serialize();
$.post(
'ajaxformval_post.php',
variableToSend,
function(data){$("#debug").html(data)},
"json"
);
});
然后在服务器端简单地输出json_编码的post:
<?php
$variable = $_POST;
echo json_encode($variable);
?>
$("#ajax-form").submit(function(){
var variableToSend = $(this).serialize();
$.post(
'ajaxformval_post.php',
variableToSend,
function(data){$("#debug").html(data)},
"json"
);
});
<?php
$variable = $_POST;
echo json_encode($variable);
?>