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

Javascript 获取变量不获取发送到PHP脚本,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,在过去的两天里,我一直在努力找到工作,但我的想法太多了 基本上,我有一个带有一堆缩略图的图像概览,如果我按下一个按钮,每个拇指都会得到一个复选框,这个复选框与一个隐藏元素一起工作,并且会出现一个div,该div带有一个按钮,该按钮将触发一个AJAX get,也会尝试发布到PHP脚本 这是HTML的大致格式: $output .= '<div id="edit-menu" style="display:none; position:fixed; top:150px; right:0px;"

在过去的两天里,我一直在努力找到工作,但我的想法太多了

基本上,我有一个带有一堆缩略图的图像概览,如果我按下一个按钮,每个拇指都会得到一个复选框,这个复选框与一个隐藏元素一起工作,并且会出现一个div,该div带有一个按钮,该按钮将触发一个AJAX get,也会尝试发布到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>";
在我的PHP脚本中,我有以下内容:

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

?>
这个回音得到数组,就这样。。。没有GET变量

同样值得一提的是,在同一页面上提供的html上方还有另一个表单

谁能帮我。谢谢你试试这个

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

我不太清楚,但我会尝试以下几点:

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

了解console.logchecked;的输出非常方便;。这将告诉我们是否有任何东西将被发送到服务器

您需要验证jquery选择字符串匹配的元素数。试试这个:console.log$input[name='del[]']:checked.length这将告诉您是否有任何元素实际匹配。我怀疑元素名称中的方括号混淆了jquery选择器,因此实际上没有匹配的内容。试着把它们命名为没有括号的del,看看是否有效

最后,在输出.value值的each函数循环中需要一个console.log语句,以便知道正确的值被推送到数组中


所以,你可能不想改变什么

将输入名称从xx[]更改为xx 然后使用下面的选项,看看你是怎么做的。询问你是否需要帮助

演示:

仅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>

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

解决方案:

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


我要跳桥了

你试过把{'del[]':checked}改成{'del':checked}并以$_GET['del']的形式访问PHP吗?console.logchecked;给你?如果checked为空,它似乎不会发送带有del参数的请求。但是如果其中有一个值,它会发送带有del的请求。我刚刚测试了你的代码,这就是我发现的。可能$input[name='del[]']:checked没有返回任何内容console.logchecked提供[1078],其中1078是复选框中的ID。另外,我检查了NET选项卡,看不到任何get变量被发送过来。由于您通过get传递,变量将显示在URL本身中,如:ajax请求/删除图像?del[]=1078,或者可能是:ajax请求/删除图像?del=1078因为此操作正在进行破坏性的删除操作,强烈建议使用POST而不是GET,因此无论如何您可能都想更改它。当我看到$\u服务器['REQUEST\u METHOD']回显GET时,我在最初使用POST之后将其更改为GET/
$(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);
        });
    });
});
$.get('ajax-requests/delete-images', {del: checked} , function(data){
$.get('ajax-requests/delete-images/', {del: checked} , function(data){