Это должны быть довольно простые вопросы, но я не могу найти простой ответ. Все вопросы, которые я нахожу, касаются одного и того же вопроса.
У меня есть страница php, которая принимает данные постов, помещает их в массив, передает массив в 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.
Прежде всего, у вас должна быть форма, на которую вы хотите получить ответ, должна быть .php
Теперь, например, у меня есть страница с формой на www.example.com/work.php
//Your form here
<form> </form>
отправьте форму на другую страницу .php, которая обрабатывает ввод и получает ответ от API.
в конце страницы у вас есть два способа вернуть данные.
используя GET
закодируйте свои переменные в URL и перенаправьте страницу на work.php
$ url = «www.example.com/work.php» + «? status = error&сообщение = это сообщение «;
header (‘Location:’. $ 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 отображение данных из сессии и остального кода будет таким же.
Других решений пока нет …