Php 反序列化响应
我试图发布一个数据,从我有这个代码在我的htmlPhp 反序列化响应,php,ajax,arrays,Php,Ajax,Arrays,我试图发布一个数据,从我有这个代码在我的html <javascript> $(document).ready(function(){ $("#btnsubmit").click(function(e){ e.preventDefault(); var testData = $("#test").serialize(); $.ajax({ type: "POST", url: "ajaxSurvey.php",
<javascript>
$(document).ready(function(){
$("#btnsubmit").click(function(e){
e.preventDefault();
var testData = $("#test").serialize();
$.ajax({
type: "POST",
url: "ajaxSurvey.php",
data: {survey:testData}
});
});
})
</javascript>
现在我如何反序列化$myDate,如下所示
调查周期=2014-02-25,截止日期=2014-02-18
您不需要反序列化,您可以通过放置隐藏字段(如)以不同的方式进行反序列化 HTML:
<form id="test" name="test" method="POST">
<input name="survey" type="hidden" value="true"/>
<input name="surveyperiod" id="surveyperiod" type="date">
<input name="deadline" id="deadline" type="date" >
<input type="submit" id="btnsubmit"name="btnsubmit" value=" Update ">
</form>
if(isset($_POST['survey']){
$myDate = $_POST['survey'];
mysql_query('INSERT INTO (surveyperiod,deadline) VALUES ($_POST["surveyperiod"], $_POST["deadline"])');
}
<javascript>
$(document).ready(function(){
$("#btnsubmit").click(function(e){
e.preventDefault();
var testData = $("#test").serialize();
$.ajax({
type: "POST",
url: "ajaxSurvey.php",
data: testData
});
});
})
</javascript>
JS:
<form id="test" name="test" method="POST">
<input name="survey" type="hidden" value="true"/>
<input name="surveyperiod" id="surveyperiod" type="date">
<input name="deadline" id="deadline" type="date" >
<input type="submit" id="btnsubmit"name="btnsubmit" value=" Update ">
</form>
if(isset($_POST['survey']){
$myDate = $_POST['survey'];
mysql_query('INSERT INTO (surveyperiod,deadline) VALUES ($_POST["surveyperiod"], $_POST["deadline"])');
}
<javascript>
$(document).ready(function(){
$("#btnsubmit").click(function(e){
e.preventDefault();
var testData = $("#test").serialize();
$.ajax({
type: "POST",
url: "ajaxSurvey.php",
data: testData
});
});
})
</javascript>
html并检查php端的隐藏字段。如果存在名为“survey的字段,则运行您的代码使用的是一种棘手的方法
说明:
在Ajax请求中,您通过POST方法(
data:{survey:testData}
)发送数据,并分配了一个POST变量,即survey
,该POST变量包含您在javascripttestData
中分配的数据字符串surveyperiod=2014-02-25&deadline=2014-02-18
。现在我们要做的是,现在我们要把字符串解析成变量,然后解析_str()内置函数来为您做这件事。就是这样:)mysql_*函数已被弃用。请改用PDO或mysqli!这个问题回答得很好:应该从脚本本身更正,而不是从PHP dcriptThanks lukasz更正,我会记住这一点。jogesh_pi,这太棘手了,我无法理解:)。非常感谢你。这就解决了我的问题。@jules我解释了,现在希望你能理解:)谢谢你的回答。
// Access as Variable
if( isset($_POST['survey']) ){
// surveyperiod=2014-02-25&deadline=2014-02-18
parse_str($_POST['survey']);
$S_Period = $surveyperiod;
$S_Deadline = $deadline;
// do whatever you want
mysql_query('INSERT INTO (surveyperiod,deadline) VALUES ( "'.$S_Period.'", "'.$S_Deadline.'" )');
}