Мне нужно автоматически заполнить форму 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>";}
?>
Вы хотели бы всегда инициализировать переменные. В результате вы пытаетесь получить доступ к переменной, которая еще не была инициализирована.
<?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) значения пусты, но они объявлены сверху.
Когда вы отправляете форму, происходит присвоение этой переменной и подставляет значения в этот контейнер.
Других решений пока нет …