2015-05-11 158 views
2

我有这种形式从ZOHO CRM:下载PDF文件提交

<div id='crmWebToEntityForm' align='center'> 
     <META HTTP-EQUIV ='content-type' CONTENT='text/html;charset = UTF-8'> 
     <form action='http://crm.zoho.com/crm/WebToLeadForm' name=WebToLeads1041232000000749005 method='POST' onSubmit='javascript:document.charset="UTF-8"; return checkMandatery()' accept-charset='UTF-8'> 
      <input type='text' style='display:none;' name='xnQsjsdp' value='fbc5a29ead008c324c3a5bad0887e5bf1f95d083f11d4251a6f8aa5a236fd104'/> 
      <input type='hidden' name='zc_gad' id='zc_gad' value=''/> 
      <input type='text' style='display:none;' name='xmIwtLD' value='eecaf957dfe7083c05ed797b5ed94512300831df6a467c5c0dca55e1967f2eae'/> 
      <input type='text' style='display:none;' name='actionType' value='TGVhZHM='/> 
      <input type='text' style='display:none;' name='returnURL' value='http://www.example.com/sucess-page' /> 
      <br> 

      <table border=0 cellspacing=0 cellpadding='6' width=600 style='background-color:white;color:black'> 
       <tr> 
        <td colspan='2' align='left' style='color:black;font-family:Arial;font-size:14px;'><strong>After Radical</strong></td> 
       </tr> 
       <br> 
       <tr> 
        <td nowrap='nowrap' align='left' style='font-size:12px;font-family:Arial;width:200px;'>Nombre </td><td style='width:250px;' ><input type='text' style='width:250px;' maxlength='40' name='First Name' /></td> 
       </tr> 
       <tr> 
        <td colspan='2' align='center' style='padding-top: 15px;' > 
         <input style='font-size:12px;color:black' type='submit' value='Submit' /> 
         <input type='reset' style='font-size:12px;color:black' value='Reset' /> </td> 
       </tr> 
      </table> 
     </form> 
    </div> 

我想实现的是,在提交,用户下载在同一页上的PDF文件。我需要这样做,以避免转到其他页面,让他们复制URL来下载文件,而不使用/发送表单。

表单的实际行为是在提交时将用户发送到http://crm.zoho.com/crm/WebToLeadForm,并将加载返回到输入值为http://www.example.com/sucess-page的页面。此页面与用户发送表单的位置不同。

我试图改变这个:

form action='http://crm.zoho.com/crm/WebToLeadForm

这样:

form action='http://www.example.com/myfile.pdf

它的工作原理下载同一个页面上的PDF(我以前添加这htaccess的:AddType application/octet-stream .pdf)但是然后表单不会将用户信息发送到zoho crm管理。

任何想法如何实现这一目标?也许jQuery替代?

回答

0

将表单发布到同一页面。然后在你的PHP代码中,检查表单是否已经提交。如果有,使用cURL将相同的数据发布到crm页面,然后回显PDF链接。

例子:

<form method="post" action="?"> 
    ... 
</form> 

然后检查是否表单被提交...

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    curlPostFunction(); 
    echo "<a href='http://example.com/example.pdf'>Click to download</a>"; 
} 

阅读此链接了解如何创建一个函数使用卷曲发布更多信息: cURL Post

请注意,这只是一个基本的例子 - 您的代码应该包括更多的检查,根据您希望实现的安全程度。

+0

感谢您的回答。在提交表单和页面加载后,我收到了这个错误:'致命错误:调用未定义的函数curlPostFunction()'另外我不需要保护这个文件。 – propcode

+0

curlPostFunction()只是我包含的一个例子,因为我没有时间为您写出整个函数。你需要自己创建一个实际的函数来发布数据。请检查我包含的链接如何做到这一点。 –