这应该是一个非常简单的问题,但我无法找到一个简单的答案。我发现的所有问题都与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页面。
答案 0 :(得分:1)
首先,您有表格并希望得到回复的页面应该是.php
现在,例如,我在www.example.com/work.php
上有一个包含表单的页面//Your form here
<form> </form>
在其他.php页面上提交表单,处理输入并从API获取响应。 在页面的末尾,您有两种方法可以返回数据。
使用GET 在url中编码变量并将页面重定向到work.php
$ url =&#34; www.example.com/work.php" +&#34;?status = error&amp; message =这是消息&#34 ;; 标题(&#39;位置:&#39;。$ url);
现在在work.php文件中,您需要使用我们用url编码的这些参数
echo $_GET['status'];
echo $_GET['message'];
// rest of the page will be same.
在会话中存储变量并重定向到不带参数的work.php
$_SESSION['status'] = "error";
$_SESSION['message'] = "This is message";
$url = "www.example.com/work.php";
header('Location: '.$url);
再次在work.php文件中显示来自会话和其余代码的数据将是相同的。