php表单将数据返回到.html页面

时间:2017-09-12 04:41:23

标签: php forms post return

这应该是一个非常简单的问题,但我无法找到一个简单的答案。我发现的所有问题都与jquery相同。

我有一个php页面,它接受post数据,将它放在一个数组中,将数组传递给api,并从api接收成功/错误。

我有一个带有表单的html页面。当我提交表单时,它将表单数据传递给php文件。

我想做的就是将成功/错误消息的变量返回给html文件。我不关心页面是否重新加载,我不想要任何花哨的功能我只是想做一个简单的测试,但忘记了我的php 101.任何帮助或方向参考将不胜感激。

HTML:

<div style="width: 400px; margin: 150px auto;">

    <form action="api3.php" method="post">
       <input type="text" placeholder="First Name" name="fname"><br><br>

       <input type="text" placeholder="Last Name" name="lname"><br><br>

       <input type="email" placeholder="Email" name="email"><br><br>

       <input type="text" placeholder="Phone" name="phone"><br><br>

       <select name="life"><br><br>
         <option value="customer">Customer</option>
         <option value="lead">Lead</option>
         <option value="subscriber">Subsciber</option>
         <option value="opportunity">Opportunity</option>
       </select><br><br>

       <input type="text" placeholder="Pizza" name="pizza"><br><br>

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

     </form>

</div>

PHP:

<?php 

$arr = array(
    'properties' => array (
        array(
        'property' => 'email',
        'value' => $_POST["email"]
        ),
        array(
        'property' => 'firstname',
        'value' => $_POST["fname"]
        ),
        array(
        'property' => 'lastname',
        'value' => $_POST["lname"]
        ),
        array(
        'property' => 'phone',
        'value' => $_POST["phone"]
        ),
        array(
          "property" => "lifecyclestage",
          "value" => $_POST["life"]
        ),
        array(
          "property" => "pizza",
          "value" => $_POST["pizza"]
        )
    )
);

$post_json = json_encode($arr);
$hapikey = "/";
$endpoint1 = 'http://api.hubapi.com/contacts/v1/contact/createOrUpdate/email/' . $arr['properties'][0]['value'] . '/?hapikey=' . $hapikey;
$endpoint2 = 'http://api.hubapi.com/contacts/v1/lists/5/add?hapikey=' . $hapikey;
$ch = @curl_init();
@curl_setopt($ch, CURLOPT_POST, true);
@curl_setopt($ch, CURLOPT_POSTFIELDS, $post_json);
@curl_setopt($ch, CURLOPT_URL, $endpoint1);
@curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response1 = @curl_exec($ch);
$status_code1 = @curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curl_errors1 = curl_error($ch);

if ($status_code1 == 200) {

    $vid = json_decode($response1, true);

    echo $vid['vid'] . '<br><br><br>';

    $arr2 = array(
         'vids' => array (
            $vid['vid']
            )
        ); 

    $vids_push = json_encode($arr2);

    @curl_setopt($ch, CURLOPT_POSTFIELDS, $vids_push);
    @curl_setopt($ch, CURLOPT_URL, $endpoint2);
    $response2 = @curl_exec($ch);
    $status_code2 = @curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $curl_errors2 = curl_error($ch);
    @curl_close($ch);

    return $response2;
}

 ?>

编辑:我将form.html页面更改为.php。我不想分享我的代码,因为它总是让事情变得复杂,但我想要的只是将$ response2返回到我的form.php页面。

1 个答案:

答案 0 :(得分:1)

首先,您有表格并希望得到回复的页面应该是.php

现在,例如,我在www.example.com/work.php

上有一个包含表单的页面
//Your form here
<form>   </form>

在其他.php页面上提交表单,处理输入并从API获取响应。 在页面的末尾,您有两种方法可以返回数据。

  1. 使用GET 在url中编码变量并将页面重定向到work.php

    $ url =&#34; www.example.com/work.php" +&#34;?status = error&amp; message =这是消息&#34 ;; 标题(&#39;位置:&#39;。$ url);

  2. 现在在work.php文件中,您需要使用我们用url编码的这些参数

    echo $_GET['status'];
    echo $_GET['message'];
    // rest of the page will be same.
    
    1. 使用SESSION
    2. 在会话中存储变量并重定向到不带参数的work.php

      $_SESSION['status'] = "error";
      $_SESSION['message'] = "This is message";
      $url = "www.example.com/work.php";
      header('Location: '.$url);
      

      再次在work.php文件中显示来自会话和其余代码的数据将是相同的。