向cURL请求提交带有数据的表单


Submit Form with data to and from cURL request

我试图获得一个页面,该页面显示一个允许上传文件的表单,然后在提交时运行php函数(curl)将文件上传到API。但我需要一个上传令牌从API回来,并包括在表单中

我真的不确定最好的方法是什么,而且我只是这个东西的初学者。

到目前为止,我的代码如下:正如你所看到的,我已经尝试在submit上运行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>

也许您应该重新考虑使用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
  }
});

这有帮助吗?