Кнопки динамического радио не будут вызывать вторую функцию JavaScript - PullRequest
0 голосов
/ 16 апреля 2019

Я динамически создаю радиокнопки на основе раскрывающегося списка с именем afl_round. Это работает без проблем:

<script type="text/javascript">
jQuery(document).ready( function($) {
    var valueCheck;
    jQuery('#afl_round').on( 'change', function () {
         afl_round = $('#afl_round').val();
     jQuery.ajax({
        type: "POST",
        url: "/wp-admin/admin-ajax.php",
        data: {
            action: 'call_slate_radio_buttons_ownership',
            afl_round: afl_round,
        },
         success:function(output){
             jQuery('#radio_buttons').html( output );
         }
     });
    }).change();
});
</script>

Затем я хочу изменить #ownership_table в зависимости от выбора из переключателей. Тем не менее, я обнаружил, что этот скрипт, кажется, не работает вообще.

Когда я генерирую переключатели напрямую через php вместо javascript, таблица прекрасно работает с приведенным ниже кодом, поэтому я чувствую, что это как-то связано с каскадным характером javascript?

Сценарии упорядочены последовательно, как они написаны здесь на веб-странице.

<script type="text/javascript">
jQuery(document).ready( function($) {
   jQuery('input:radio[name=afl_slate]').on( 'change', function () {
         afl_slate = $('input:radio[name=afl_slate]:checked').val();
     jQuery.ajax({
        type: "POST",
        url: "/wp-admin/admin-ajax.php",
       data: {
            action: 'call_slate_ownership_table',
            afl_slate: afl_slate,
        },
         success:function(output){
             jQuery('#ownership_table').html( output );
         }
     });
    }).click();
});
</script>

Я был бы признателен за любые отзывы людей, так как я уверен, что это что-то достаточно простое, что я упустил из виду.

Заранее спасибо.


Как и просили в комментариях, я скопировал упрощенную версию своего кода php-файла, чтобы помочь. Как упомянуто выше, первый код успешно генерирует переключатели. Второй код ничего не генерирует ..... если я жестко не кодирую переключатели в html. Так что я не верю, что с этими php-файлами что-то не так. Я думаю, что связь между javascript не существует.

function get_slate_radio_buttons_ownership(){
global $wpdb;

$round = $_POST['afl_round'];
$myQuery = $wpdb->get_results('SELECT ds_slate_name, ds_slate_id FROM afl_master WHERE round = '.$round.' GROUP BY ds_slate_id');

if($myQuery){
$check = 0;
foreach ( $myQuery as $result ) 
    {
if($check == 0){$checked=' checked="checked"';} else{$checked='';}
echo'<input type="radio" name="afl_slate" value="'.$result->ds_slate_id.'"'.$checked.'/> '.$result->ds_slate_name.'<br>';
$check = $check + 1;
    }
}

echo'<br>';
wp_die();
}

add_action('wp_ajax_nopriv_call_slate_radio_buttons_ownership', 'get_slate_radio_buttons_ownership');
add_action('wp_ajax_call_slate_radio_buttons_ownership', 'get_slate_radio_buttons_ownership');

function get_slate_ownership_table(){
global $wpdb;

$slate = $_POST['afl_slate'];
$myQuery = $wpdb->get_results('SELECT * FROM afl_master WHERE ds_slate_id = "'.$slate.'" ORDER by ds_selected DESC');

echo '<div style="overflow-x:auto;">';
echo '<table>';
echo "<tr><th>Player Name</th><th>Value</th></tr>"; 

if($myQuery){
foreach ( $myQuery as $result ) 
{
$ds_value = number_format(ROUND(1000*$result->dreamTeamPoints/$result->ds_salary_hist,1),1);

    echo '<tr><td>'.$result->player_name.'</td><td>'.$ds_value.'x</td></tr>';
    }
}
echo '</table>';
echo '</div>';

wp_die();
}

add_action('wp_ajax_nopriv_call_slate_ownership_table', 'get_slate_ownership_table');
add_action('wp_ajax_call_slate_ownership_table', 'get_slate_ownership_table');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...