Автозаполнение города после ввода почтового индекса

Мне нужно автоматически заполнить форму CITY: при вводе почтового индекса,
там написано «неопределенная переменная: массив в строке ..», где значение = «< ? php $ array [‘navn’] «>

может кто-нибудь помочь?

http://i62.tinypic.com/hv5fkl.jpg

<div id="search">
<form name="input" action="" method="get">
POST:<input type="text" name="postcode"><br><br>
City:<input type="text" name="navn" value="<?php $array['navn'] ?>"><br><br>
<input type="submit" value="search">
</form>
</div></div>

<?php
if(isset($_GET['postcode'])){$postcode = $_GET['postcode'];

$content = file_get_contents('http://oiorest.dk/danmark/postdistrikter/'. $postcode . '.json');

$array = json_decode($content, true);echo $array['navn'];
echo "<br>";}
?>

1

Решение

Вы хотели бы всегда инициализировать переменные. В результате вы пытаетесь получить доступ к переменной, которая еще не была инициализирована.

<?php

$city = ''; // initialize containers
$postcode = '';

if(isset($_GET['postcode'])){
$postcode = $_GET['postcode'];
$content = file_get_contents('http://oiorest.dk/danmark/postdistrikter/'. $postcode . '.json');
$array = json_decode($content, true);
// when the request is made, then assign
$city = $array['navn'];
}

?>

<!-- so that when you echo, you'll never worry about undefined indices -->
<div id="search">
<form name="input" action="" method="get">
POST:<input type="text" name="postcode" value="<?php echo $postcode; ?>"><br><br>
City:<input type="text" name="navn" value="<?php echo $city; ?>"><br><br>
<input type="submit" value="search">
</form>
</div>

В этом ответе происходит следующее: при первой загрузке (пока нет запроса json) значения пусты, но они объявлены сверху.

Когда вы отправляете форму, происходит присвоение этой переменной и подставляет значения в этот контейнер.

Простая демонстрация

1

Другие решения

Других решений пока нет …