2013-10-28 38 views
0

我有一個表單,通過包含API調用的ajax調用來上傳文件。 如果API成功,我想更新一個包含文件列表的表。 我在考慮在ajax頁面中調用一個javascript函數,但是我回來的是undefined中的函數,我通過在javascript函數之前放置了clarifications.js來解決這個問題。從ajax調用javascript函數頁面

這裏是形式(在頁面的我包括包含JavaScript功能JS文件的頂部):

<div class='input_table_title'>Upload file:</div> 
<div style='float:left;'> 
<form name='upload_my_files' action='ajax/clarifications/handle_upload.php' method='post' enctype='multipart/form-data' target='upload_target'> 
<input type='file' name='file_upload' /> 
<input type='hidden' name='notification_id' value='<?php echo $value->NotifiNumber; ?>' /> 
<input type='submit' value='Upload'> 
</form> 
<iframe id='upload_target' name='upload_target' src='' style='width:0;height:0;border:0px solid #fff;'></iframe> 
</div> 

handle_upload.php我使該API調用,並在端的頁面我關閉了PHP,把clarification.js和調用函數。

<script src="(position)/clarifications.js" type="text/javascript"></script> 
<script language="javascript" type="text/javascript"> 
createTable("<?php echo $outcome ?>", "<?php echo $uploaded_filename ?>"); 
</script> 
clarifications.js

文件我聲明函數(正如我剛纔所說我列入表單頁面的js文件):

function createTable (result, filename) { 

if (result == 'success'){ 

    var success = document.getElementById('clarification_success'); 

    success.style.display = "block"; 
    success.innnerHTML = "File "+filename+" successfully uploaded."; 

    // Update the list of uploads 
    var list = document.getElementById('table_clarification'); 
    var myElement = document.createElement("td"); 
    myElement.innerHTML = filename; 

    list.appendChild(myElement); 
} 

return true; 

} 

clarification_success是一個div我想要的顯示成功消息。 table_clarification是我想與文件名添加該行的表的ID上傳

上傳成功,但功能CREATETABLE沒有定義。編輯:解決

說我有是函數無法找到ID爲「clarification_success」,我想是因爲在的,而不是正常的頁面尋找它的另一個問題。我對麼?如果是,我該如何解決?

注意:恐怕我不能使用jQuery,只能使用Javascript。

+0

我們可以看到使AJAX調用的代碼? –

+0

您在哪裏將clarifications.js導入您的目標頁面?目標頁面應該如何知道這個腳本? – katrin

+0

@katrin我想我不會將clarifications.js導入到我的目標頁面中......我該怎麼做? –

回答

2

如果我理解正確 - iframe內容應該是單獨的頁面。這個頁面是動態的在服務器上構建並返回給客戶作爲回答。 這個頁面可能包含<script src="(path)/clarifications.js"></script>的頭文件

+0

是正確的,但是如何將腳本包含在iframe的頭部? –

+0

@Helter分分合合只是將下面的字符串添加到您的PHP文件的動態腳本之前: 「」 或者你可以返回由PHP生成完整的HTML頁面: (你的腳本在這裏) – katrin

+0

謝謝,它的作品,但現在(當然)我有另一個問題... –