未捕获的SyntaxError:意外的令牌} doctype

时间:2013-06-24 07:28:01

标签: php jquery ajax session batch-file

我正在写一个小的导入脚本,由于数据量的原因我必须拆分。

所以我有一个带有花哨的ajax动作的start.php和dbactions.php做了所有的努力工作。

该脚本首先初始化数据,检查双精度并创建一个带有ID的会话。

然后它应该分批通过ID。

在第一次调用时,start.php没有错误,并且脚本的第一部分运行良好,在创建一个超过12k ID的数组的用户会话。

但是当我输出第二次初始化的结果时,它会给出

的错误信息

未捕获的SyntaxError:意外的令牌}

见附件截图:

enter image description here

尽管缺少$ do变量,dbactions.php本身没有错误,并且第一次加载时的start.php也没有。

start.php看起来像这样:

<?php
header('Content-Type: text/html; charset=utf-8');
session_start();
$_SESSION['start_counter'] = 0;
$_SESSION['batches'] = 1;
$_SESSION['array_counter'] = 0;
$_SESSION['batchcount'] = 0;
$_SESSION['newsletter'] = 0;


?>

    <!DOCTYPE>
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <title>DB-actions</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link rel="stylesheet" type="text/css" href="main.css" />
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
        <script>
            function DoSomething(what){
                var request = $.ajax({
                    url: "dbactions.php?do=" + what,
                    type: "GET",            
                    dataType: "html"
                });
                $('#godosomething').attr('disabled','true');
                $('#doing').show();
                $('#callmsg').empty();
                $('body').addClass('grey');
                request.done(function(msg) {
                    $('#doing').hide();
                    $("body").removeClass("grey");
                    $("#callmsg").html(msg);          
                });
                request.fail(function(jqXHR, textStatus) {
                    alert( "Request failed: " + textStatus );
                });
            }
        </script>
        <style type="text/css">
            padding, margin: 0;
            body  { padding:20px 0;}
            p { padding-bottom:3px;}
            #callmsg { margin:50px 0; }
            #insertmsg { margin:50px 0; }
            #doing { display:none; position:absolute; bottom:48%; right:48%; border: 1px solid green; padding: 20px; background-color:green; color: white;}
            .grey { background-color: grey; opacity: 0.5;}
            .green { color:green; }
        </style>
    </head>

    <body>

    <h1>Start the import</h1>
    <button type="button" onclick="DoSomething('initialize')" id="godosomething">Go baby</button>
    <div id="callmsg"></div>
    <div id="doing">I am working, please wait...</div>

    </body>
    </html>

我知道有几个关于它的线程,建议在哪里,charset是错的(不是从ajax除外),但我在每个文件上都有这个:

header('Content-Type: text/html; charset=utf-8');

有一个关于&#39;的建议。和#34;标记,我试图在输出中更改它们,但它没有帮助。

我还想到了print_r的长输出,但禁用它并没有帮助。

这是第二个输出:

echo '<h2>Batch successfull</h2>';
$_SESSION['start_counter'] = $_SESSION['start_counter'] + $numberofqueries;
$_SESSION['batches']++;
echo "<p>Next? <button type='button' onclick" . "='DoSomething('makearray')" ."id='godosomething'>Go baby</button></p>";
echo '<p>Batch'.$_SESSION['batches'].' from '.$_SESSION['batchcount'].'</p>';
echo '<pre>';
print_r($_SESSION['users']);
echo '</pre>';  

其他编辑

我取消注释整个第二个输出,直到h2回声,它仍然给我同样的错误。

这怎么可能?所以错误不是来自第二个输出?

3 个答案:

答案 0 :(得分:1)

你没有正确地对此进行评论。

   'DoSomething('makearray')' 

应该是:

 "DoSomething('makearray')"

在php中:

 echo "<p>Start first? <button type='button' onclick" . "='DoSomething('makearray')" ."id='godosomething'>Go baby</button></p>";

答案 1 :(得分:1)

您的CSS无效。试试这个。

           <style type="text/css">
                padding { margin: 0;}
                body  { padding:20px 0;}
                p { padding-bottom:3px;}
                #callmsg { margin:50px 0; }
                #insertmsg { margin:50px 0; }
                #doing { display:none; position:absolute; bottom:48%; right:48%; border: 1px solid green; padding: 20px; background-color:green; color: white;}
                .grey { background-color: grey; opacity: 0.5;}
                .green { color:green; }
            </style>

第二个按钮出错。

更改此

<button type="button" onclick="DoSomething(" makearray")"="" id="godosomething">Go baby</button>

到此

<button type="button" onclick="DoSomething('makearray')" id="godosomething">Go baby</button>

答案 2 :(得分:0)

改变这个 -

echo "<p>Next? <button type='button' onclick" . "='DoSomething('makearray')" ."id='godosomething'>Go baby</button></p>";

要 -

echo "<p>Next? <button type='button' onclick=DoSomething('makearray') id='godosomething'>Go baby</button></p>";

如果有点击,请告诉我。

修改 -

从文件中删除所有dummy spaces/content

<!DOCTYPE>更改为<!DOCTYPE html>