Php 在表单中单击submit,将inputbox值获取到变量中,并将其输出到另一个inputbox中

Php 在表单中单击submit,将inputbox值获取到变量中,并将其输出到另一个inputbox中,php,forms,variables,input,submit,Php,Forms,Variables,Input,Submit,我正在开发一个job appliance表单,它将结果输出到CRM(客户关系管理)中 我的问题是,我的客户希望“街道地址、邮政编码和地点”字段在输入表单上的不同字段后,一起输出到CRM中的单个字段中 所以我认为我应该使用php,当用户单击submit时,它会得到每个字段的值,并将其输入到我创建的隐藏字段中。 出于某种原因,由于我不是php专家,它不起作用。 它实际上没有向CRM输出任何值 到目前为止,我得到的是: <form action="https://service.capsulec

我正在开发一个job appliance表单,它将结果输出到CRM(客户关系管理)中

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

所以我认为我应该使用php,当用户单击submit时,它会得到每个字段的值,并将其输入到我创建的隐藏字段中。 出于某种原因,由于我不是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>


你没有你的名字

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

你有
如果($_POST['submit'])

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

有两个问题:

一,

如果没有
$\u POST
数据,将抛出错误:
注意:未定义索引:在…
中提交

应该改成

if (isset($_POST['submit']))
2,
$\u POST['submit']
将永远不会出现,因为没有名为
name
的属性
submit
。您应该将其添加到“提交”按钮:


您混淆了服务器端和客户端代码。下面是一个简单的解释,不过您应该记录有关HTTP和web服务器工作方式的更多信息:

  • 当用户a请求页面时,会向服务器发送HTTP请求
  • 此请求由web服务器B处理
  • 根据一些规则(文件扩展名、文件位置等),web服务器可以决定简单地获取文件并将其发送给客户端A(例如,对于普通HTML文件),或者首先通过(PHP)解释器运行文件,然后将结果发送给客户端
  • 在任何情况下,客户端A只接收HTML:此时PHP已经由B执行
因此,用户使用表单请求页面。此时,他还没有提交任何内容,因此PHP解释器在
$\u POST
中没有得到任何内容,并且隐藏的输入是空的

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

你需要做的是

  • 如果您有权访问目标脚本(),请修改它,以便将字段连接在一起
  • 如果不能,请添加一个作为表单目标的中间PHP脚本,将字段连接在一起,并将HTTP请求本身(例如使用curl)发送给newlead
  • 或者,如果您不想在这方面花费太多时间,可以使用客户端代码(即Javascript)来填充隐藏的输入。但是,您不能确定表单是否正确提交(用户可以选择禁用Javascript,或者客户端可能根本无法处理它:这在盲文设备中很常见)

表单
和提交元素在哪里?用一个文本区来收集所有三条数据怎么样?对不起,我不认为这很重要,用表单标签和submt按钮编辑。这是不可能的选择,谢谢为什么这不起作用?有什么问题吗?尽管最后一个“来自样式=”有点小错误“>我会试试你的建议,谢谢。@BrunoM93我用拉宾的答案测试了你的代码,结果输出成功地打印在屏幕上。然而我认为它可以代表更多的工作,这是我自己做不到的。太广泛了,我只是一个建议。如果要在同一文件中重定向表单。您只需将操作留空[action=”“]。因为你有一个很长的URL,所以它不容易出错。我用Rabi的答案尝试了OP的代码,保持
if($\u POST['submit'])
不变,即使没有输入数据,它也能工作。我没有得到
未定义的索引…
错误。FF v22-虽然
if(isset($\u POST['submit'])
是更好的做法。我在测试代码时会运行严格的错误。你确定你所有的东西都打开了吗?你说的“所有东西都打开了”是什么意思?
error\u reporting(E\u ALL)包括严格的|注意|不推荐|警告|解析等。好的,你说得对。我没有打开它,事实上它显示了错误消息。但是,这不应该阻止代码的执行。但是你肯定是对的,我会在这里强调一下,谢谢+就我而言,干杯。你完全正确,我想我会尝试一些javascript来做到这一点!
if (isset($_POST['submit']))
<input type="submit" value="Submit" name="submit" style="[STYLES_HERE]">