Показать сообщение отдельно
  #1 (permalink)  
Старый 26.09.2016, 13:22
Интересующийся
Отправить личное сообщение для suxxoi Посмотреть профиль Найти все сообщения от suxxoi
 
Регистрация: 09.09.2016
Сообщений: 16

Как правильно реализовать замену?
Есть страница где загружаются данные по полям state и state_str
Если в базе не находится для страны штат, выводится поле input,если есть select
elseif( $component == "state" || $component == "state_str" ) {
		if( in_array( $d->country, country::$countries_with_parsed_states ) ) {

			if( $component == "state_str" ) {
				continue;
			}
			$state_map = country::get_region_list( $d->country, true );
			echo "<tr><td>" . $field_name . "</td><td id='state'><select  name='" . $component . "'>";
			echo "<option value='0'>Select State</option>";
			foreach( $state_map as $id_state => $label ) {
				echo "<option value='" . $id_state . "' " . ( $d->$component == $id_state ? 'selected=selected' : '' );
				echo ">" . $label . "</option>";
			}
			echo "</select></td></tr>";
		}
		else {

			if( $component == "state" ) {
				continue;
			}
			echo "<tr><td>" . $field_name . "</td><td id='statestr'>
			<input class='form-control' type='text' name='" . $component . "' value=\"" . str_replace( '"', '&quot;', $d->$component ) . "\" /></td></tr>";
		}

Написал AJAX,чтобы при выборе страны из базы подгружались данные по штатам, если нет то ставилось поле с вводом
$("#country_code").change(function () {
			var id_country=$(this).val();
			$.ajax({
				type:  'POST',
				url:   '/ajax/state_country.php',
				data:  'id='+id_country,
				success: function (data) {

						$('#state').html(data);
                                                $('#statestr').html(data);


				}
			})
		});


Текст state_country.php

$term = (int)$_POST[ 'id' ];

$sql = $db->fetchAll( 'SELECT region_id, region_full_name FROM regions WHERE region_country_id = :id_country', [ 'id_country' => $term ] );

if ($sql){
	echo '<select  name="state">';
	foreach($sql as $state) {
		echo '<option value="' . $state ['region_id'] .'">' . $state ['region_full_name'] . '</option>';
	}
	echo '</select >';
} else {
	echo '<input class="form-control" type="text" name="state_str" />';
}


Данный метод работает затирая старые данные, можно ли в текущие поля подгружать данные? И чтобы при этом названия строки тоже менялось, если выбран state = State, если statestr = State str?
Ответить с цитированием