获取变量不会发送到PHP脚本

时间:2014-03-26 12:33:50

标签: javascript php jquery ajax

我在过去的两天里努力争取一些工作,而且我没有想法。

基本上我有一堆缩略图的图像概述,如果我按下一个按钮,每个拇指都会获得一个复选框(这与隐藏元素一起使用),并且div会出现一个触发AJAX的按钮(也可以尝试过)到PHP脚本。

这是大致的HTML:

$output .= '<div id="edit-menu" style="display:none; position:fixed; top:150px; right:0px;" class="panel">
<div class="panel-heading">Bewerk geselecteerde items</div>
</div>';
foreach($results as $file){
    if($config->ajax){
        $image = $file->image;
    }else{
        $image = $file->image;
    }
    if($image){
        $output .= '<div class="col-md-3 col-lg-2 col-sm-4">
        <div class="edit-wrapper" style="display:none;">
        <input type="checkbox" name="del[]" value="' . $file->id . '"></div>
        <div class="thumbnail"><div class="caption">
        <h4>' . $file->title . '</h4><p><a href="' . $config->urls->root .  'view-image/' . $file->id . '" class="label label-danger fancybox fancybox.ajax" data-fancybox-type="ajax" rel="tooltip" title="Bekijk">Bekijk</a>
        <a href="' . $pages->get('/register-use/')->url ."?picture_id=" .  $file->id . '" id="' . $file->id  . '" class="label label-default" rel="tooltip" title="Download now">Download</a></p></div>';
        $img = $image->size(150,150);
        $output .= '<img src="' . $img->url . '" alt="...">';
        $output .= '</div></div>';
    }

}
$output .= '<input name="submit" type="submit" class="btn btn-danger" id="delete-selected-items" value="Verwijder"/>';
$output .= "</div>";

这是有效的,是的,我知道它很丑,但那是因为我随着时间的推移改变了很多。 这是我的JQuery AJAX请求,其中包含一些其他东西来从复选框中收集数据:

$("#delete-selected-items").on("click", function(){
    if(confirm("Weet je zeker dat je de geselecteerde items wilt verwijderen?")) {
    var checked = []
    $("input[name='del[]']:checked").each(function ()
    {
        checked.push(parseInt($(this).val()));
    });
    console.log(checked);
    $.get('ajax-requests/delete-images', {'del[]':checked} , function(data){
        console.log(data);
    });
}
return false;

});

在我的PHP脚本中,我有以下内容:

 <?php
echo $_SERVER['REQUEST_METHOD'];
print_r($_GET);

?>

这回应GET Array(),就是这样......没有GET变量

还值得一提的是,在提供的html上方的同一页面上还有另一种形式。

谁能帮助我。感谢

5 个答案:

答案 0 :(得分:0)

试试这个

$("input[name='del[]']:checked").each(function (index, obj)
{
    checked.push(parseInt($(obj).val()));
});

答案 1 :(得分:0)

我不确切知道,但这些是我会尝试的事情:

  • 您真的需要一个工具来告诉您发送到服务器的数据,例如Firebug。单击“网络”选项卡,您可以准确地看到要发送到服务器的内容以及接收内容。这将告诉您问题是在客户端还是服务器上。

  • 知道“console.log(checked);”的输出真的很方便。这将告诉我们是否有任何东西要发送到服务器。

  • 您需要验证jquery选择字符串匹配的元素数量。试试这个:console.log($(“input [name ='del []']:checked”)。length)这将告诉你是否有任何元素实际匹配。我怀疑元素名称中的方括号混淆了jquery选择器,因此实际上没有任何东西匹配。尝试将它们命名为“del”而不使用括号,看看是否有效。

  • 最后,你需要在“each”函数循环中输入一个console.log语句,它输出.value()的值,这样你才知道正确的值被推送到数组上

答案 2 :(得分:0)

所以,你可能想要改变一些事情。

将输入名称从xx []更改为xx 然后使用下面的内容,看看你如何去。询问您是否需要帮助。

演示:JSFiddle

HTML(仅限样本)

<div id="edit-menu" class="panel">
    <div class="panel-heading">Bewerk geselecteerde items</div>
</div>
<div class="col-md-3 col-lg-2 col-sm-4">
    <div class="edit-wrapper">
        <input type="checkbox" name="del" value="one">
        <input type="checkbox" name="del" value="two">
        <input type="checkbox" name="del" value="three">
        <input type="checkbox" name="del" value="four">
        <input type="checkbox" name="del" value="five">
        <input name="submit" type="submit" class="btn btn-danger" id="delete-selected-items" value="Verwijder"/>
    </div>
</div>

JS:

$(function() {
    var checked = [];
    $('#delete-selected-items').click(function(){
        $("input[name='del']:checked").each(function () {
            checked.push( $(this).val() );
            //use the below ONLY if your values are numbers;
            //checked.push( +($(this).val()) );
        });
        alert(checked);
        $.get('ajax-requests/delete-images', {del: checked} , function(data){
            console.log(data);
        });
    });
});

答案 3 :(得分:0)

我可能在这里遗漏了它,但你的ajax中的url是否需要扩展名为.php?否则,您可以将PHP更改为只有var_dump($_REQUEST);以查看发送到页面,GET或POST的任何参数。

答案 4 :(得分:0)

解决方案:

$.get('ajax-requests/delete-images', {del: checked} , function(data){

$.get('ajax-requests/delete-images/', {del: checked} , function(data){

我要跳桥了