1

我正在开发一个工作设备表格,将其结果输出到 CRM(客户关系管理)中。

我的问题是,我的客户希望在表单上的不同字段中输入后,将字段“街道地址、邮政编码和地区”一起输出到 CRM 的一个字段中。

所以我认为我应该使用 php,因为当用户单击提交时,它会获取每个字段的值并将其输入到我创建的隐藏字段中。出于某种原因,因为我不是 php 专家,所以它不起作用。它实际上并没有向 CRM 输出任何价值

这就是我到目前为止所得到的:

<form action="https://service.capsulecrm.com/service/newlead" method="post">

    <input name="morada" id="morada" maxlength="255" title="" style="border-style: solid; border-width: 1px; border-color: #cccccc; position: absolute; margin: 0px; padding: 0px; width: 220px; height: 20px; font-family: Tahoma; font-size: 11px; color: #333333; background-color: #ffffff; z-index: 1; left: 189px; top: 397px;" value="" type="text">

    <input name="postal" id="postal" maxlength="255" title="" style="border-style: solid; border-width: 1px; border-color: #cccccc; position: absolute; margin: 0px; padding: 0px; width: 220px; height: 20px; font-family: Tahoma; font-size: 11px; color: #333333; background-color: #ffffff; z-index: 1; left: 189px; top: 437px;" value="" type="text">

    <input name="local" id="local" maxlength="255" title="" style="border-style: solid; border-width: 1px; border-color: #cccccc; position: absolute; margin: 0px; padding: 0px; width: 220px; height: 20px; font-family: Tahoma; font-size: 11px; color: #333333; background-color: #ffffff; z-index: 1; left: 189px; top: 467px;" value="" type="text">


    <?php if ($_POST['submit']) {

    $addressmorada = $_POST['morada'];
    $addresspostal = $_POST['postal'];
    $addresslocal = $_POST['local'];

    echo "<input type='hidden' name='STREET' value='".$addressmorada. " " .$addresspostal. " " .$addresslocal."' />";

    }

    ?>

<input name="submit" type="submit" value="Submit" style="
    border-style: none; border-width: 0px; border-color: #888888; position: absolute; margin: 0px; padding: 0px; width: 93px; height: 33px; z-index: 1; 
    left: 433px; top: 1773px;
    text-indent: 99999999999999px;
    background: green;
    cursor: pointer;
">


</form>

我将尝试解释我的 PHP 代码,

  1. if 语句在提交时调用函数。
  2. 变量获得不同的输入值。
  3. 我回显一个隐藏的输入字段类型,调用变量,以便所有信息在一个字段中输出到 CRM

我认为主要问题可能在数字 3 上!我会感谢任何帮助。抱歉,如果我的英语不好,那不是我的母语。

4

3 回答 3

2

两个问题:

1、

   if ($_POST['submit'])

会抛出错误:Notice: Undefined index: submit in ...如果没有$_POST数据。

它应该改为

if (isset($_POST['submit']))

2,$_POST['submit']永远不会发生,因为没有name称为的属性submit。您应该将此添加到您的“提交”按钮中:

<input type="submit" value="Submit" name="submit" style="[STYLES_HERE]">
于 2013-08-05T17:06:11.263 回答
1

你没有你的名字按钮右键。

<input type="submit" value="Submit" name = "submit" >

你有
if ($_POST['submit'])。

所以按钮的名称应该是提交。否则它永远不会出现在你的 if 语句中。出于调试目的尝试仅打印 if 语句中的所有值。它很有帮助。

于 2013-08-05T16:58:59.610 回答
0

您混淆了服务器端和客户端代码。这是一个简单的解释,尽管您应该记录更多关于 HTTP 和 Web 服务器工作方式的信息:

  • 当用户 A 请求一个页面时,向服务器发送一个 HTTP 请求
  • 此请求由 Web 服务器 B 处理
  • 根据某些规则(文件扩展名、文件位置...),Web 服务器可以决定简单地获取文件并将其发送到客户端 A(例如对于纯 HTML 文件),或者通过 (PHP) 运行它首先解释器,然后将结果发送给客户端。
  • 在任何情况下,客户端 A 只接收 HTML:此时 B 已经执行了 PHP。

所以用户请求带有表单的页面。此时他还没有提交任何东西,所以 PHP 解释器什么也没有得到$_POST,隐藏的输入是空的。

用户填写表格并提交。这会触发带有数据的新 HTTP 请求。但是当然隐藏的输入仍然是空的,并且永远不会被填充,因为 PHP已经被执行(并且永远不会是客户端)。

你需要做的是要么

  • 如果您有权访问它,请修改目标脚本 ( https://service.capsulecrm.com/service/newlead ),以便将这些字段连接在一起
  • 如果不能,添加一个中间 PHP 脚本作为表单的目标,将字段连接在一起,然后将 HTTP 请求本身(例如使用 curl)发送到 newlead
  • 或者,如果您不想在上面花费太多时间,请使用客户端代码(即 Javascript)来填充隐藏的输入。但是,您不能确定表单是否会正确提交(用户可以选择禁用 Javascript,或者客户端可能根本无法处理:这对于盲文设备很常见)。
于 2013-08-05T17:06:56.713 回答