Я пытаюсь добавить некоторые функции на создаваемую мной страницу регистрации.
Функция находит адрес по почтовому индексу и добавляет эти данные в форму ввода.
Я нашел способ сделать это, но есть некоторые проблемы, связанные с тем, как я это делаю. В настоящее время я использую форму с кнопкой отправки, затем использую if (isset ($ _ post), что означает, что страница будет перезагружена после нажатия этой кнопки отправки, чего я не хочу.
Я думаю, что мне нужно будет использовать некоторые jquery или ajex, чтобы обойтись без перезагрузки формы, но, честно говоря, я не уверен, с чего начать.
Я написал функцию, которая возвращает нужные мне данные в виде массива
postcode_api_test.php
<?php
function lookuppostcode($postcode)
{
$postcode = str_replace(" ", "", $postcode);
$key = 'MY API KEY';
$request = 'https://api.getAddress.io/v2/uk/' . $postcode . '?api-key=' . $key;
$response = file_get_contents($request);
$jsonresponse = json_decode($response, true);
$returnData = array();
$returnData['lat'] = $jsonresponse['Latitude'];
$returnData['lon'] = $jsonresponse['Longitude'];
$returnData['totalAddresses'] = count($jsonresponse['Addresses']);
$addressArray = explode(',', $jsonresponse['Addresses'][0]);
$returnData['locality'] = $addressArray[4];
$returnData['city'] = $addressArray[5];
$returnData['county'] = $addressArray[6];
$returnData['addresses'] = array();
foreach ($jsonresponse['Addresses'] as $address) {
$addressArray = explode(',', $address);
$fullAddress = '';
foreach ($addressArray as $item) {
if ($item != ' ') {
$fullAddress .= $item . ",";
}
}
$fullAddress = trim($fullAddress, ",");
$returnData['addresses'][] = array(
'line1' => $addressArray[0],
'line2' => $addressArray[1],
'line3' => $addressArray[2],
'line4' => $addressArray[3],
'locality' => $addressArray[4],
'city' => $addressArray[5],
'county' => $addressArray[6],
'fullAddress' => $fullAddress,
);
}
return $returnData;
}
?>
postcode.php:
<?php
include 'postcode_api_test.php';
<!DOCTYPE html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src = "ajex_test.js"> </script>
<form method="post">
<form method = "post">
<div class="form-group">
<label class="control-label">Entity Type</label>
<label class="control-label">Title</label>
<input type="text" name="postcode" id="postcode" class="form-control" value = "">
<button class="btn btn-success" onclick = "postcodelookup()" name = "postcodebtn" id="postcodebtn"> </button>
<div id="div1"><h2>Let jQuery AJAX Change This Text</h2></div>
</form>
</form>
Мне было интересно, есть ли у кого-нибудь указания, как начать это?
ajax_test.js
function postcodelookup($postcode){
$("#postcodebtn").click(function(){
$.ajax({
type: "GET",
url: "postcodecall.php",
data:{"postcode":$("#postcode").val},
success: function(data){
$("#div1").html(data);
}
});
});
* *} Тысяча двадцать-одина; * * тысяча двадцать две
postcodecall.php
<?php
include 'postcode_api_test.php';
if(isset($_GET["postcode"])){
$postcode = $_GET["postcode"];
lookuppostcode($postcode);
echo $data;
}
?>