2013-10-28 42 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

谢谢,它的作品,但现在(当然)我有另一个问题... –