2016-07-26 88 views
0

我有一个起始页面,用户在这里提供一些信息(电子邮件和名称)并按提交。当输入第二页时,jQuery将一些变量(dateStr)从第二页内发送到第二页。但是,我注意到这样做会使表单提交变量消失。我在这里展示了代码的相关部分。 YourMail and YourName变成空字符串在这里。我在做什么错误?在PHP中处理jQuery变量时,表单提交变量会丢失

<?php 
$YourEMail = $_REQUEST['YourEMail']; 
$InputName = $_REQUEST['YourName']; 

$dateAndTime = ''; 
if(isset($_POST["dateStr"]) && strlen(trim($_POST["dateStr"])) > 0) 
{ 
    $dateAndTime = $_POST["dateStr"]; 
    // $dateAndTime is fine, but $YourEMail and $InputName are empty here! 
    ...... 
} 
?> 

jQuery代码从第二页内张贴$ dateStr如下所示。

<script type="text/javascript"> 
    $(function(){ 
    var d = new Date(); 
    var dateStr = d.toLocaleString(); 
    $.post(window.location, { 
     dateStr: dateStr 
    }).success(function(data){ 
     $('#divMessage').replaceWith("<span style=\"color:yellow\">" + dateStr + "</span>"); 
    }); 
}); 
</script> 
</head> 
+0

表单属性操作(对于表单1)设置为Post? – Webdev

+0

是的,在第一页中,像这样

。如果我不使用jQuery的东西,这些变量显示正常。 – pythonic

+0

如何设置$ _POST [“dateStr”](如果此变量由第二种形式由Jquery发送)$ _ POST只应包含发布第一个表单时发送的变量。表单是否再次发布? – Webdev

回答

0

好的,我解决了这个问题。对于任何感兴趣的人,这里是解决方案。我想感谢ADyson对会话变量的建议。

<?php 
// Start the session 
session_start(); 
?> 
.... 
<?php 
if (isset($_POST['submit'])) 
{ 
    $YourEMail = $_REQUEST['YourEMail']; 
    $InputName = $_REQUEST['YourName']; 

    $_SESSION["email"] = $YourEMail; 
    $_SESSION["name"] = $InputName; 
} 

$dateAndTime = ''; 
if(isset($_POST["dateStr"]) && strlen(trim($_POST["dateStr"])) > 0) 
{ 
    $YourEMail = $_SESSION['email']; 
    $InpuName = $_SESSION['name']; 
    $dateAndTime = $_POST["dateStr"]; 
    ...... 
} 
?> 
0

我刚刚改变了你的jQuery代码。试试吧: -

<script type="text/javascript"> 
     $(function(){ 
     var d = new Date(); 
     var dateStr = d.toLocaleString(); 
     var data ={ dateStr: d.toLocaleString(),YourEmail :'<?=$_POST['YourEMail']?>',YourName : '<?=$_POST['YourName']?>'} 
     $.post(window.location, data).success(function(data){    
      $('#divMessage').replaceWith("<br /><span style=\"color:yellow\">dateStr = " 
      + dateStr + "</span>"); 
     }); 
    }); 
    </script> 
    </head> 
+0

你好...现在问题解决了吗? – Webdev

+0

不,仍然不起作用。 – pythonic