2012-04-28 6 views
0

この未終了の文字列リテラルエラーを修正するにはどうすればよいですか。何をこのエラーはどういう意味とどのように以下 未定義の文字列リテラルエラー

がフルコードで固定することができます。

<?php 
    session_start(); 

if(isset($_POST['fileImage'])){ 

$idx = count($_POST ['fileImage']) -1 ; 
$output = isset($_POST ['fileImage'][$idx]) ? $_POST ['fileImage'][$idx]['name'] : ""; 

} 

    ?> 


    function stopImageUpload(success) { 

     var imageNameArray = ['<?php echo json_encode($output); ?>']; 
     var result = ''; 

     if (success == 1) { 
      result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>'; 
      for (var i = 0; i < imageNameArray.length; i++) { 
       $('.listImage').append(imageNameArray[i] + '<br/>'); 
      } 
     } 
     else { 
      result = '<span class="emsg">There was an error during file upload!</span><br/><br/>'; 
     } 

     return true; 
    }​ 
+0

申し訳ありませんが、あなたはJavaScriptの外部ファイル内、またはあなたが戻ってきているHTMLドキュメント内のその配置されていますか? –

+0

それは私が '周りの単一引用符を削除する$ _POST – user1359453

+0

にしようとしているPHPスクリプトから別々のページにある ' – DCoder

答えて

1

より良い解決策は次のようになります。変更

<?php 
session_start(); 

$results = array(); 
if(isset($_POST['fileImage'])){ 
    // not entirely sure what you're trying to achieve here 
    // so just replicating the logic you already had 
    // but I'm sure there's a better way to do whatever this is trying to do 
    $idx = count($_POST['fileImage']) -1 ; 
    $results[] = isset($_POST['fileImage'][$idx]) ? $_POST ['fileImage'][$idx]['name'] : ""; 
} 

?> 

function stopImageUpload(success) { 
    var imageNameArray = <?php echo json_encode($results); ?>; 
    var result = ''; 

    if (success == 1) { 
    result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>'; 
    for (var i = 0; i < imageNameArray.length; i++) { 
     $('.listImage').append(imageNameArray[i] + '<br/>'); 
    } 
    } else { 
    result = '<span class="emsg">There was an error during file upload!</span><br/><br/>'; 
    } 

    // you might want to use the "result" variable before returning 

    return true; 
}​ 

何?私は[]の出力をjson_encodeで取り除き、JSの代わりにPHPで配列を作成しました。このようにしてフォームを投稿すると、$resultsは1つの要素を持つ配列になり、そうでない場合は空の配列になります。残りのロジックは前と同じように動作するはずですが、追加したコメントを読んでください。

+0

ありがとう、これはエラーを解決しました。ありがとうございました :) – user1359453

2

それはあなたの引用符と間違って何か(echo'dコンテンツ内の余分な単一引用符があることを意味し、または改行)、それはパーサを台無しにしています。 JSで特別な文字(引用符、改行など)が正しくエスケープされていることを確認してください。

json_encodeはあなたのためにこれを行います。

+0

json_emcodeはどこにコードを記述しますか? – user1359453

+0

@userrandomnumbers:マニュアルを読み、それが何をしているかを見ましたか? –

+0

私はそれが引用符で間違っていることを知っていますが、賢明なことは、トップに表示されているissetコードの前に、うまくいきました。また、私は場所のカップルでjson_encodeコードを入れてみましたが、それでも – user1359453

関連する問題