Вставка в пользовательскую таблицу WordPress с помощью jQuery

#javascript #php #jquery #mysql #wordpress

#javascript #php #jquery #mysql #wordpress

Вопрос:

Мой код не вставляет данные в базу данных при использовании jQuery.

Мой код Jquery:

 $("#addMatches").button().click(function( event ) {
        var that = $('#group-settings-form.standard-form'),
        oldUrl = that.attr('action'),
        testUrl = oldUrl.split('/'),
        url = testUrl[0] '//' testUrl[2] '/' testUrl[3] '/wp-content/themes/betting/bet_wager.php',
        data = {};

        var matchRound = $('#matchRound').val(), group_id = $('#group_id').val(); firstPlayer = $('input[name="firstPlayer"]').val();


        that.removeAttr('action');
        that.attr('action',url),
        that.find("[name]").each(function(index,value) {
        var that = $(this),
        name = that.attr('name'),
        value = that.val();

        data[name] = value;  
        });

        console.log(firstPlayer);
        $.post(url,{matchRound:matchRound,group_id:group_id,firstPlayer:firstPlayer},
        function(results) {

        }); console.log(firstPlayer);
            event.preventDefault();window.location.reload();
            });
  

мой код PHP-файла WordPress:

 <?php
include_once($_SERVER['DOCUMENT_ROOT'].'/wordpress/wp-config.php' );

if (isset($_POST['matchRound'])){
        $matchRound = $_POST['matchRound'];$group_id =$_POST['group_id'];$firstPlayer = $_POST['firstPlayer'];$secondPlayer = $_POST['secondPlayer'];
    $addTeam1 = $wpdb->prefix . "dzwebmatch";$wpdb->insert($addTeam1,
    array( 'matchRound' => $matchRound, 'group_id' => $group_id, 'firstPlayer' => $firstPlayer, 'secondPlayer' => $secondPlayer ),
    array( '%d','%d','%s',"%s" ) );
    $wpdb->show_errors();
    $wpdb->print_error();
$wpdb->hide_errors();
}else{}
?>
  

Мой код формы:
Раунд ввода

Player1Player2 ‘;

         for ($i=0; $i < $ladderRows; $i  )        
         {
           echo "<tr><td><input name='firstPlayer'/></td><td>Vs</td><td><input name='secondPlayer'/></td></tr>";
         }
         ?>
        </table>
        <input type="submit" id="addMatches" value="Add Matches" />
        </form>
  

Дайте мне знать, если потребуется дополнительная информация.

Комментарии:

1. Спасибо за помощь, я нашел решение, которое, похоже, работает. Я добавил атрибут класса к входам firstPlayer и secondPlayer. Затем использовал jQuery для получения значения на основе класса.

Ответ №1:

В WP ajax запросы отправляются немного по-другому . Проверьте эти ссылки.

http://www.smashingmagazine.com/2011/10/18/how-to-use-ajax-in-wordpress/

http://wptheming.com/2013/07/simple-ajax-example/

Комментарии:

1. Спасибо, но ни в одной статье не рассматривается вставка данных в базу данных WordPress или проблема, с которой я сталкиваюсь.

Ответ №2:

Использование wp-load.php для загрузки встроенных функций WordPress

 include_once($_SERVER['DOCUMENT_ROOT'].'/wordpress/wp-load.php' );
  

Комментарии:

1. Нет, это загрузит WP 2 раза: ottopress.com/2010/dont-include-wp-load-please