我有一个表单,我通过包含 API 调用的 ajax 调用上传文件。如果 API 成功,我想更新一个包含文件列表的表。我正在考虑在 ajax 页面中调用一个 javascript 函数,但我得到的是未定义的函数,我通过将 clarifications.js 放在 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。