如何通过jQuery的$ .ajax()函数在php中传递数据值?

时间:2019-06-07 18:36:05

标签: javascript php jquery ajax

我正在处理 jQuery代码,如下所示,其中我试图从 jQuery的$ .ajax()函数传递 php中的数据值

  

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.
     }
    }
?>          

问题陈述:

我已经在上面的php代码中传递了$value=$_POST['id'];,但是在调试print_r($value);上却没有显示任何值。

我想知道应该在php中进行哪些更改,以便能够从php中的AJAX函数传递数据值。

1 个答案:

答案 0 :(得分:0)

问题不在于ajax,而是jquery。您正在尝试从.go-btn类获取data-id,但是如果您有多个同一个类的按钮,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,则不需要在按钮上键入Submit。