向cURL请求提交包含数据的表单

时间:2014-11-11 10:37:27

标签: php jquery forms curl

我试图获取一个页面,显示允许文件上传的表单,然后在提交时运行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>

1 个答案:

答案 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
  }
});

这有帮助吗?