我的jquery变量无法使用POST方法访问php文件

时间:2019-06-27 23:27:00

标签: php jquery html ajax

我想使用AJAX将变量发送到php文件select.php以根据特定日期填充表,该日期取自输入字段。

在我的AJAX脚本上,我有这个用于在单击按钮后获取日期的值,检查日期是否不是空字符串(如果是,则发送引导警报来警告用户),然后尝试使用POST发送变量到我的select.php文件,该文件根据应该通过POST到达的日期来获取表


$(document).on('click', '.b-request', function(){  
        var fecha = $(".datetimepicker-input").val();
        if(fecha == "")
        {
            $("#msj-alerta").html('<div class="alert alert-danger alert-dismissible"><button type="button" class="close">×</button><b>Heeeeeey</b><br>Date can\'t be blank!</div>');
            $('.alert .close').on("click", function(e){
                $(this).parent().fadeTo(500, 0).slideUp(500);
             });
        }
        else
        {
            $.ajax({   
                url:"select.php", 
                method:"POST",  
                data:fecha,   
                success:function(data)
                {  
                    //alert("Date entered: "+ fecha);
                    $('#live_data').html(data);    
                }  
            }); 

        }

这是PHP文件select.php(仅标头):

f(isset($_POST["fecha"]))
{
    $my_fecha = $_POST["fecha"];
    $connect = mysqli_connect($servername, $username, $password, $dbname);  
     $output = '';  
    $sql = "SELECT id, name, type FROM ms_resources.exceptions_new WHERE fecha = '".$my_fecha."';";

同时运行两个代码时出现错误:

Notice: Undefined variable: my_fecha 

不确定为什么变量没有达到php,知道吗?

谢谢

1 个答案:

答案 0 :(得分:2)

POST值是键/值对。您发送的是值,而不是键:

data:fecha

在使用此值时,此变量的名称在此情况下可能很重要,但是一旦解析了该变量并使用了该值,该名称就不再重要,PHP也对此一无所知。您需要为该值分配一个键。例如:

data: { fecha: fecha }

然后您使用PHP中的密钥获取值:

$_POST["fecha"]

(这只是巧合,在这种情况下,键和客户端变量是相同的。根本没有必要。)


不相关但很重要的服务器端代码也向SQL injection开放。要了解有关这是什么以及如何防止它的更多信息,请this is a great place to start