После помощи @Greg Schmidt и нескольких часов тестирования различных сценариев я смог объединить поля ввода города, штата и почтового индекса.Проблема заключалась в том, что, поскольку поле ввода адреса также заполнялось автоматически, оно не вызывало событие onchange.В конечном итоге сработало добавление concat-кода в код onchange для поля select.Вот рабочий код:
PHP:
$ddlquery2 = "SELECT * FROM everyone WHERE rolename='Customer' ORDER BY first_name ASC";
$ddlresult2 = mysqli_query($dbc, $ddlquery2) or die("Bad SQL: $ddlquery2");
echo 'Customer (select one): <select type="text" class="dropdown" name="custid" id="customerID" size="1" onchange="popaddress()">';
echo '<option value=""></option>';
while($ddlrow2=mysqli_fetch_array($ddlresult2, MYSQLI_ASSOC)){
echo "<option value='".$ddlrow2['id']."' data-address='".$ddlrow2['address']."' data-city='".$ddlrow2['city']."' data-state='".$ddlrow2['state']."' data-zip='".$ddlrow2['zip']."'>" . $ddlrow2['first_name'] .' ' .$ddlrow2['last_name']. "</option>";
} //End while statement
echo "</select>";
echo '<br>';
echo '<input style="float:left; margin-left:185px; margin-top:3px; border:0px; background:none; box-shadow:none;" type="text" id="custaddress" name="address" readonly="readonly" value="" onchange="concatloc()">';
echo "<br >";
echo '<input style="float:left; margin-left:185px; margin-top:-7px; border:0px; background:none; box-shadow:none;" type="text" id="custAdd" readonly="readonly" value="">';
echo '<input type="hidden" id="custcity" name="city" value="">';
echo '<input type="hidden" id="custstate" name="state" value="">';
echo '<input type="hidden" id="custzip" name="zip" value="">';
JQUERY:
<script>
$('#customerID').change(function() {
selectedOption = $('option:selected', this);
$('input[id=custaddress]').val( selectedOption.data('address') );
$('input[id=custcity]').val( selectedOption.data('city') );
$('input[id=custstate]').val( selectedOption.data('state') );
$('input[id=custzip]').val( selectedOption.data('zip') );
document.getElementById('custAdd').value =
document.getElementById('custcity').value + ', ' +
document.getElementById('custstate').value + ' ' +
document.getElementById('custzip').value;
});
</script>
Надеюсь, это поможет кому-то другому, пытающемуся объединить поля ввода.Еще один совет ... будьте осторожны при копировании и вставке кода даже в пределах одного файла.Когда я первоначально установил исходные вводы города, штата и почтового индекса на type = "hidden", они все еще появлялись на странице.Мне пришлось вручную набирать эти строки, чтобы «скрытая» команда работала.