0

php に次のコードがあります。ハードドライブからファイルを選択すると、facebook にアップロードされます。

  <?php
     // calculations for the variables used here are above, but not necessary 
$graph_url= "https://graph.facebook.com/me/photos?"
     . "access_token=" .$access_token;
     echo '<html><body>';
     echo '<form enctype="multipart/form-data" action="'
     .$graph_url .' "method="POST">';
     echo 'Please choose a photo: ';
     echo '<input name="source" type="file"><br/><br/>';
     echo 'Say something about this photo: ';
     echo '<input name="message" 
         type="text" value=""><br/><br/>';
     echo '<input type="submit" value="Upload"/><br/>';
     echo '</form>';
     echo '</body></html>';
?>

そして、同じことを行うJavaScript関数を作成しました:

function PHPPhotoUpload()
{
GraphURL= "https://graph.facebook.com/me/photos?" +"access_token=" + USERTOKEN;

     document.getElementById("photoupload").innerHTML += '<p> ' + GraphURL + '</p>';
     document.getElementById("photoupload").innerHTML += '<html><body>';
     document.getElementById("photoupload").innerHTML += '<form enctype="multipart/form-data" action="' + GraphURL +'" method="POST">';
     alert('<form enctype="multipart/form-data" action="' + GraphURL +' "method="POST">');
     document.getElementById("photoupload").innerHTML += 'Please choose a photo: ';
     document.getElementById("photoupload").innerHTML += '<input name="source" type="file"><br/><br/>';
     document.getElementById("photoupload").innerHTML += 'Say something about this photo: ';
     document.getElementById("photoupload").innerHTML += '<input name="message" type="text" value=""><br/><br/>';
     document.getElementById("photoupload").innerHTML += '<input type="submit" value="Upload"/><br/>';
     document.getElementById("photoupload").innerHTML += '</form>';
     document.getElementById("photoupload").innerHTML += '</body></html>';
}

しかし、何もアップロードせずにphpファイルのアップロードボタンをクリックすると、エラーが発生します。JavaScriptでそれを行うと、ボタンは単に何もしません。画像を選択したときも同様です。どちらもドキュメントにまったく同じ HTML コードを出力しているように見えますが、なぜこれが機能しないのですか?

4

2 に答える 2

1

そのようなinnerHTMLを構築することはできません。追加する大きな文字列ではありません。壊れたタグで innerHTML を設定すると、閉じます。

innerHTML を 1 回設定するよりも、最初に文字列全体を作成する必要があります。

もう 1 つの問題は、ページに別の html および body タグを含めることができないことです。それらの行を取り除きます。

于 2013-09-18T12:38:12.780 に答える
0

まず、@epascarello によって既に言われているように、関数から<html><body>andを削除します。</body</html>

次に、フォームが要素に追加された後に、このようなことを試すことができますphotoupload

$(document).on('click', 'input[type="submit"]', function(){
    $('form').submit();
});
于 2013-09-18T12:46:23.377 に答える