JSON получить значения формы, используя AJAX - PullRequest
1 голос
/ 08 мая 2011

Я не знаю, если я устал или почему я не могу понять это правильно, пожалуйста, помогите, что мне нужно

    <script language="javascript">
$(document).ready(function(){
    getResultsCountry();
}) 

function getResultsCountry() {
  $.ajax({
        url:'suggest_country.html',
        type:'POST',
        data: 'q=',
        dataType: 'json',
        success: function( json ) {
        $('#country')[0].options.length = 0;
        $.each(json, function(i, value) {
            if (value=='<?php echo $country; ?>') {
                $('#country').append($('<option>').text(value).attr('value', value).attr('selected', 'selected'));
            } else {
                $('#country').append($('<option>').text(value).attr('value', value));
            };
        });
        }
    });
};
</script>

Код во внешнем файле выглядит как

<?php


   $results = mysql_query('SELECT DISTINCT country FROM MyTable WHERE country LIKE \'%\' ORDER BY country');

   while( $result = mysql_fetch_array($results) ) {
        $cities = $cities.' short = \''.$result['country'].'\' OR';       
   }

   $cities = substr($cities, 1,strlen($cities)-3);

   $results2 = mysql_query('SELECT full, short FROM `Countries` WHERE '.$cities);
   $json = array();
   while( $result2 = mysql_fetch_array($results2) ) {
        $json[] = $result2['short'].','.$result2['full'];
   }

   echo json_encode( $json );
   mysql_close($db2);
?>

Ответ яполучение -

["AG,ANTIGUA AND BARBUDA","AU,AUSTRALIA","BR,BRAZIL","CA,CANADA","KY,CAYMAN ISLANDS","CN,CHINA"]

Мне нужно заполнить его в опциях для тега. Я тоже получил эту часть, но я не могу сделать так, чтобы он указывал код страны AG в качестве значения и имя в качестве имени, например

<option value="AG">Antigua</option>

Пожалуйста, сломай это для меня, я действительно смущен и устал, это были часы головной боли.

Ответы [ 2 ]

1 голос
/ 08 мая 2011

Вам нужно разделить значения

$.each(json, function(i, value) {
            var arr_values = value.split(',');
            if (value=='<?php echo $country; ?>') {
               $('#country').append($('<option>').text(arr_values[1]).attr('value', arr_values[0]).attr('selected', 'selected'));
            } else {
                $('#country').append($('<option>').text(arr_values[1]).attr('value', arr_values[0])));
            };
        });
0 голосов
/ 09 мая 2011

Это сделало бы ваш обратный вызов ajax намного проще, если бы вам не приходилось разбивать строки ..

while( $result2 = mysql_fetch_array($results2) ) {
    $json[] = array('short'=>$result2['short'],
                    'full' => $result2['full']
              );

}

А затем вы можете проанализировать

* 1007.*
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...