Как передать значение из onchange select через Ajax в функцию wp и отобразить на странице - PullRequest
0 голосов
/ 06 августа 2020

У меня есть поле выбора, в котором отображается тип шансов. каждый коэффициент из поля вызывает другое значение, и это значение необходимо изменить и отобразить в Odds. php с использованием Ajax.

Как я могу добиться передачи значения поля Select через Ajax с помощью jQuery и функции WP?

Коэффициенты. php

<select id="typeOdds" class="uk-select">
    <option selected disabled>Choose Odds Type</option>
    <option value="spread">Spread</option>
    <option value="total">Total</option>
    <option value="moneyline">Moneyline</option>
</select>

и это переменная, которую мне нужно изменить из моего условия при изменении типа коэффициентов:

$pregameodds->AwayPointSpread в $pregameodds->AwayMoneyLine

Это мой пример кода Ajax, но нигде go ...

$('#typeOdds').change(function(){
    $.ajax({
        url: "/wp-admin/admin-ajax.php",
        type: "post",
        success: function(data){
           // my value from select field
        }
    });
});

Обновлен мой вопрос:

Я не вижу, когда вызываю typeOdds. Но в console.log и в предупреждении отображалось мое значение.

Мои шансы. js

jQuery('#typeOdds').on('change', function($) {
  var val = jQuery('#typeOdds').val();
  console.log( '_type is changed to ' + val );

  var data = {
    'action': 'my_action',
    'type': 'post',
    'typeOdds': val
  };

  jQuery.post(ajaxurl, data, function(response) {
    alert( 'Got this from the server: ' + response );
  });
});

Мои функции. php

add_action( 'wp_ajax_my_action', 'my_action' );
add_action( 'wp_ajax_nopriv_my_action', 'my_action' );
function my_action() {
  global $wpdb;
  $typeOdds = $_POST['typeOdds'];
  echo $typeOdds;
}

Мое состояние к шансу. php

if ( $typeOdds == 'spread' ) {
  $spreadPoint = $pregameodds->AwayPointSpread;
} elseif ( my_action() == 'moneyline' ) {
  $moneylinePoint = $pregameodds->AwayMoneyLine;
}

1 Ответ

0 голосов
/ 06 августа 2020

Итак, несколько небольших изменений в вашем коде:

$('#typeOdds').change(function(){
    $.ajax({
        data: {"typeOdds": $('#typeOdds').val()}, //this is where you pass the value
        url: "/wp-admin/admin-ajax.php",
        type: "post",
        success: function(data) {
           // this is where you do things with the data you receive in return from the php script
           // so something like:
           alert(data); // data being whatever the php echo's out
        }
    });
});

ОБНОВЛЕНИЕ: обновлен ответ, чтобы отразить вашу переменную typeOdds. Я публиковал myValue вместо typeOdds, поэтому либо мне нужно изменить свое значение на typeOdds, либо вам нужно изменить переменную сообщения My Functions. php на myValue.

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