Как передать значение данных в php из функции $ .ajax () jQuery? - PullRequest
0 голосов
/ 07 июня 2019

Я работаю над кодом jQuery , как показано ниже, в котором я пытаюсь передать значение данных в php из функции $ .ajax () jQuery .

HTML-код:

<td style="width:5%; text-align:center;"><button style="width:90px;" type="submit"  name="go-button" value="Go" data-id="<?php echo $key; ?>"  class=" go-btn btn btn-outline-primary">Go</button></td> 

jQuery код:

 jQuery(document).ready(function($)
        {
            $('.go-btn').click(function()
            {
                let target = $(this).attr('data-id'),
                    spanEl = $('.file-name[data-id='+ target +']');

                $.ajax({
                    url: 'http://abc.xyz/status.php',      // http://abc.xyz/status.php is the place where all my html/php/js code is sitting. 
                    type: 'POST',
                    data: {id: target}, //change to what you want
                    success: function(res)
                    {           
                        //alert(res)
                    },
                    error: function(res)
                    {
                        alert('Hello World!')
                    }
                })
            })
        });  

Php код:

<?php 
     if($_SERVER['REQUEST_METHOD'] == "POST") and !empty( $_POST['go-button'] ) )
    {       
     $value = $_POST['id'];
     print_r($value);        // Line #A   // it doesn't print any value. 
     foreach ($mp4_files as $f)  // Line#B
     { 
            // conversion of mp4 into mp3 is happening.
     }
    }
?>          

Постановка проблемы:

Я передал $value=$_POST['id']; в приведенном выше коде php, но при отладке print_r($value); он не печатает никаких значений.

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

1 Ответ

0 голосов
/ 08 июня 2019

Проблема не в ajax, а в jquery.Вы пытаетесь получить data-id из класса .go-btn, но если у вас более одной кнопки с одним и тем же классом, JS не обнаружит, какую кнопку вы нажали.

Решением было бы установить класс на вашей таблице и позволить jquery определять все кнопки внутри таблицы, например:

<table class="go-table">
<td style="width:5%; text-align:center;">
    <button style="width:90px;" type="submit"  name="go-button" value="Go" data-id="<?php echo $key; ?>"  class=" go-btn btn btn-outline-primary">Go</button>
</td>   <td style="width:5%; text-align:center;">
    <button style="width:90px;" type="submit"  name="go-button" value="Go" data-id="<?php echo $key; ?>"  class=" go-btn btn btn-outline-primary">Go</button>
</td>   

И для вашего jqueryизмените его следующим образом:

$('.go-table').on('click', '.go-btn', function()
        {
            let target = $(this).attr('data-id'),
                spanEl = $('.file-name[data-id='+ target +']');

И он должен получить атрибут data-id.На заметку, если вы используете ajax, вам не нужно вводить тип на ваших кнопках.

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