为什么在此代码中出现Parse错误? PHP

时间:2017-11-17 11:16:08

标签: javascript php magento magento-1.9 magento2

我正在研究Magento项目。我有一个控制器是一个php文件。我想在那个php文件中编写一个JavaScript函数。 这是导致错误的函数,

 public function verifyPinAction()
         {
           $data = $this->getRequest()->getPost();
             echo "<script type='text/javascript'>
           var datastring=<?php echo $data['pin'];?>;
           $.ajax({
type: 'POST',
url: 'http://xxxxx.com/xxxxxx/ErrorProcessing1.php',
data : datastring,
//dataType: 'json',

success: function(html) {



   //alert(html);


   if(html=='wrong text entered')
  {
    <?php Mage::getSingleton('core/session')->addError('Invalid Pin Number');
                  $this->_redirect('enterpintoverify'); ?>
  } 
  else{
    <?php Mage::getSingleton('core/session')->addSuccess('Your Email is verified');
                $this->_redirect('enterpintoverify');?>
  } 


}
});
           </script>
           ";

         }

它出现以下错误

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in /home/xxxxx/public_html/newtradesdev/app/code/local/Customer/Register/controllers/IndexController.php on line 65

第65行指的是 var datastring=<?php echo $data['pin'];?>; 有人能告诉我哪里出错了吗?

我使用了xxxx标记因为我正在托管网站上工作。请跳过网址。

3 个答案:

答案 0 :(得分:2)

改变你的回声:

public function verifyPinAction()
{
   $data = $this->getRequest()->getPost();
?>
<!--HTML STARTS HERE-->
<script type='text/javascript'>
           var datastring=<?php echo $data['pin'];?>;
           $.ajax({
type: 'POST',
url: 'http://xxxxx.com/xxxxxx/ErrorProcessing1.php',
data : datastring,
//dataType: 'json',

success: function(html) {



   //alert(html);


   if(html=='wrong text entered')
  {
    <?php Mage::getSingleton('core/session')->addError('Invalid Pin Number');
                  $this->_redirect('enterpintoverify'); ?>
  } 
  else{
    <?php Mage::getSingleton('core/session')->addSuccess('Your Email is verified');
                $this->_redirect('enterpintoverify');?>
  } 


}
});
           </script>
<!--HTML ENDS HERE-->
<?php

}

?>

这提供了更易读的代码,也不会导致任何错误。

答案 1 :(得分:2)

尝试在echo中使用连接php代码

echo "<script type='text/javascript'>
                        var datastring=".$data['pin'].";
                        $.ajax({....

答案 2 :(得分:2)

可能由于解析错误而发生。尝试连接PHP代码。

var datastring=".$data['pin'].";