我试图获取一个页面,显示允许文件上传的表单,然后在提交时运行php函数(curl)将文件上传到API。但是我需要API中的上传令牌返回并将其自身包含在表单中。
我不确定最好的方法是什么,而且我只是初学者。
我的代码到目前为止如下: 正如你所看到我尝试在提交时运行php函数,然后jQuery从curl响应中追加一个带有变量的隐藏输入,但我不知道这是否可能。
任何人都可以指出一种更好的方法吗?
<html>
<head>
<title>Zendesk Form</title>
</head>
<body>
<?php
require_once('zendesk.php');
if (isset($_POST["z_name"])) {
$upload = $_POST['z_attachment'];
$initial = curlWrap("/uploads.json?filename=license2233.txt", $upload, "POST");
?>
<script>
$("#zenform").append('<input type="hidden" name="z_token" value="<?php echo $upload_token; ?>" />').submit();
</script>
<?php } ?>
<div class="zenform">
<form id="zenForm" method="POST" action="zenconnect.php" name="zenform">
<label>Name:</label>
<input type="text" value="" name="z_name">
<label>Email:</label>
<input type="text" value="" name="z_requester">
<label>Subject:</label>
<input type="text" value="" name="z_subject">
<label>Change:</label>
<textarea value="" name="z_description"></textarea>
<label>Attach Files:</label>
<input type="file" name="z_attachment">
<!-- <input type="hidden" name="z_token" value="<?php echo $upload_token; ?>"> -->
<input type="submit" value="Send Changes" id="zenSubmit">
</form>
</div>
</body>
</html>
答案 0 :(得分:0)
也许你应该重新考虑使用php-curl。
您已标记了jquery - 因此我建议您在表单上捕获您的提交事件并自行控制。这将阻止您的网页重新渲染..我的意思的一些代码:
使用此样式的选择器获取表单数据
var request_data = {
z_name: $('input#(id of zname input field').val(),
z_subject: $('input#(id of zsubject input field').val(),
...
} //you havent set your id's yet
$.post("youruri", request_data, function(data, err){
if(err){
console.log(err);
} else {
//do something with your received data
}
});
这有帮助吗?