2017-02-22 102 views
1

我有这些代码,它将php变量存储到全局JavaScript变量中。所有的模块都在同一个文件,但我仍然得到一个未捕获的SyntaxError:意外的标记<,在rowNum1的线: -Javascript:Uncaught语法错误:意外的令牌<

<script type="text/javascript"> 
    var glo = 0; 
    var rowNum = <?php echo $_GET['SN'];?>; 
    var newnames = new Array(); 
    var rowNum1 = ""; 
    var tempVal = ""; 
    var destTextarea = ""; 
    newnames=<?php echo json_encode($userinfoarr); ?>; //This varaible initialisation works fine 


    function fetchNext(){ 
      if (glo++ === 0) 
      { 
       if(rowNum < newnames.length) 
       { 
        document.getElementById("Txt0").value = rowNum; 
        document.getElementById("Txt1").value = newnames[rowNum]; 
        tempVal = newnames[rowNum]; 
       } 
       rowNum++; 
      } 
      else 
      { 
       rowNum1=<?php echo json_encode($sln); ?>; //This one throws an Uncaught Syntax error 
       if(rowNum1 < newnames.length) 
       { 
        document.getElementById("Txt0").value = rowNum1; 
        document.getElementById("Txt1").value = newnames[rowNum1]; 
        tempVal = newnames[rowNum1]; 
       } 
       rowNum1++; 
       console.log("test"); 
      } 
    } 
    </script> 

这是$ SLN PHP代码:

<?php 
    if($_SERVER['REQUEST_METHOD'] == 'POST') 
    { 
     if(isset($_POST['Txt0'])) 
     { 
      $sln = $_POST['Txt0']; 
     } 
    } 
?> 

这是$ userinfoarr

的PHP代码

有人帮我解决这个问题,因为我无法在这里理解这个场景吗? 以下是错误的浏览器里面的PHP代码的截图 enter image description here enter image description here

+0

此之前把单引号尝试: VAR rowNum ='<?php echo $ _GET ['SN'];?>'; –

+0

它是一个js文件吗? .....好像你试图访问js文件中的PHP变量....! – Naincy

+0

那么,生成的JavaScript代码是什么样的?那里可能有一个PHP错误信息,可以帮助你调试你的问题。我的猜测是,_“未定义的变量”_ –

回答

-1

使用单引号:

var rowNum = '<?php echo $_GET['SN'];?>'; 
+0

var rowNum ='<?php echo $ _GET ['SN'];?>'; –

+0

除非该值是数字,否则不需要。 –

+0

仍然不起作用 – mustangDC

0

改变你的PHP如下面的代码。分配$sln默认值

<?php 
    $sln = ""; //<---- assign default value to $sln 
    if($_SERVER['REQUEST_METHOD'] == 'POST') 
    { 
     if(isset($_POST['Txt0'])) 
     { 
      $sln = $_POST['Txt0']; 
     } 
    } 
?> 
+0

我给了'$ sln = 0'和'$ sln =“0”';但令人遗憾的是我得到了相同的回应 – mustangDC

+0

可以为PHP版本或其他东西,因为我几乎所有的时间没有问题 – mustangDC

+1

请确保这项任务在您的JavaScript代码 –

0

做这样的事情

修改$ SLN代码

<?php 
    if($_SERVER['REQUEST_METHOD'] == 'POST') 
    { 
     if(isset($_POST['Txt0'])) 
     { 
      $sln = $_POST['Txt0']; 

    echo "<script type='text/javascript'>var sln='$sln'</script>"; 

     } 
    } 
?> 

和脚本

{ 
     rowNum1 = sln; // 

       if(rowNum1 < newnames.length) 
       { 
        document.getElementById("Txt0").value = rowNum1; 
        document.getElementById("Txt1").value = newnames[rowNum1]; 
        tempVal = newnames[rowNum1]; 
       } 
       rowNum1++; 
       console.log("test"); 
    }