2012-07-14 80 views
0

我不知道发生了什么,我再次在PHP和Javascript中检查我的代码,但无法找到任何额外的},它没有相应的{,任何人都可以帮我看一下代码?未捕获的SyntaxError:意外的代币}

这里是PHP文件,加载函数可以成功加载,但是当我点击按钮“查看日志”时,会发生上述消息。

function load($DB){ 
    $dbConnection = mysql_connect($DB['server'], $DB['loginName'], $DB['password']); 
    if(!$dbConnection){ 
     die('Error! ' . mysql_error()); 
     } 
    mysql_select_db($DB['database'], $dbConnection); 
    $result = mysql_query("SELECT ClientName FROM Client"); 

    print "Sort by"; 
    print "<select id='option'>"; 
    print "<option value='3'>Tech</option>"; 
    print "<option value='4'>Client</option>"; 
    print "</select>"; 
    print "<input type='button' value='View the log' onclick='viewlog(document.getElementById('option').value)'/>"; 
    print "<br>"; 

    print "Tech Name checked in/out from"; 
    print "<select id='client'>"; 
    while($row = mysql_fetch_array($result)){ 
     print "<option value='".$row['ClientName']."'>".$row['ClientName']."</option>"; 
    } 
    print "</select>"; 
    print "<input type='button' value='Display' onclick='display(document.getElementById('client').value)'/>"; 
    print "<br>"; 
    print "<button type='button' onclick='back.php?function=5'>Export the log to .csv</button>"; 
    print "<br>"; 
} 

function viewlog($DB, $sort){ 
    print "<h1>repeat</h1>"; 
    $dbConnection = mysql_connect($DB['server'], $DB['loginName'], $DB['password']); 
    if(!$dbConnection){ 
     die('Error! ' . mysql_error()); 
     } 
    mysql_select_db($DB['database'], $dbConnection); 
    $query = "SELECT * 
       FROM Tech AS T, Client AS C, Site AS S, Log AS L 
       WHERE T.TechID=L.TechID AND C.ClientID=L.ClientID AND S.SiteID=L.SiteID "; 
    if($sort=="Tech") 
     $query .= "ORDER BY T.TechName ASC, L.Time DESC"; 
    else if($sort=="Client") 
     $query .= "ORDER BY C.ClientName ASC, L.Time DESC"; 
    $result = mysql_query($query) or die('Error! ' . mysql_error());; 
    print "Real-Time check in/check out<br>"; 
    print "<table><th><td>Tech</td><td>Client</td><td>Site</td>"; 
    print "<td>Date and Time</td><td>Type</td></th>"; 
    while($row = mysql_fetch_array($result)){ 
     print "<tr><td>".$row['TechName']."</td>"; 
     print "<td>".$row['ClientName']."</td>"; 
     print "<td>".$row['SiteName']."</td>"; 
     print "<td>".$row['Time']."</td>"; 
     print "<td>".$row['Type']."</td></tr>"; 
     } 
    print "</table>"; 
} 

function export($DB){ 
    $dbConnection = mysql_connect($DB['server'], $DB['loginName'], $DB['password']); 
    if(!$dbConnection){ 
     die('Error! ' . mysql_error()); 
     } 
    mysql_select_db($DB['database'], $dbConnection); 
    $result = mysql_query("SELECT TechName, ClientName, SiteName, Time, Type 
          INTO OUTFILE 'result.csv' 
          FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED by '\"' 
          LINES TERMINATED BY '\n' 
          FROM Tech AS T, Client AS C, Site AS S, Log AS L 
          WHERE T.TechID=L.TechID AND C.ClientID=L.ClientID AND S.SiteID=L.SiteID 
          ORDER BY L.Time DESC"); 
    $Time = date('Y_m_d_H_i'); 
    $fileName = "Report_" + $Time; 
    header('Content-type: text/csv'); 
    header('Content-Disposition: attachment; filename="'.$fileName.'.csv"'); 
    readfile('result.csv'); 
} 

$function = $_GET['function']; 
if($function==0) 
    load($DB); 
elseif($function==3) 
    viewlog($DB, "Tech"); 
elseif($function==4) 
    viewlog($DB, "Client"); 
elseif($function==5) 
    export($DB); 

下面是Javascript代码:

function load(){ 
var xmlhttp; 
if (window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp = new XMLHttpRequest(); 
}else{ // code for IE6, IE5 
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
}    

xmlhttp.onreadystatechange = function(){ 
    //document.getElementById("action").innerHTML=xmlhttp.status; 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200){ 
     document.getElementById("action").innerHTML=xmlhttp.responseText;  
    } 
} 
var num = 0; 
xmlhttp.open("GET","back.php?function="+num, true); 
xmlhttp.send(); 
} 

function viewlog(num){ 
var xmlhttp; 
if (window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp = new XMLHttpRequest(); 
}else{ // code for IE6, IE5 
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
}    

xmlhttp.onreadystatechange = function(){ 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200){ 
     document.getElementById("View").innerHTML=xmlhttp.responseText;   
    } 
} 
xmlhttp.open("GET","back.php?function="+num, true); 
xmlhttp.send(); 
} 

我试图隐藏在js文件的事件浏览功能,也为PHP文件还的事件浏览功能的内容,但两个动作还是给了同样的消息,我真的不知道如何调试它。有人能帮我一把吗?

+0

你在浏览器或者你的apache错误日志中看到这个错误吗? IE浏览器,这是一个JS错误或PHP错误? 你的环境是什么? LAMP后端,您使用的浏览器是什么? – 2012-07-14 02:29:36

+0

这是假设说你从哪一行中得到错误。 – Ruel 2012-07-14 02:31:31

+0

删除多余的';':'$ result = mysql_query($ query)或死('Error!'。mysql_error());; '为了防止将来的错误。请参阅下面的@Eric回答。 – 2012-07-14 02:33:58

回答

2

我认为浏览器将有麻烦你使用相同的报价为属性作为JavaScript字符串(你做两个,但生病只是把一个例子)与:

onclick='viewlog(document.getElementById('option').value)' 

onclick='viewlog(document.getElementById(&quot;option&quot;).value)' 
+0

哦,你是对的,这应该是它的麻烦,让我试试 – Conrad 2012-07-14 02:38:48

+0

它现在的作品,谢谢 – Conrad 2012-07-14 02:47:36

相关问题