[英]Get variables don't get send over to PHP script
我正在努力爭取過去兩天的工作,但我沒有想法。
基本上,我有一個帶有一堆縮略圖的圖像概述,如果我按下一個按鈕,每個拇指都會得到一個復選框(這與隱藏的元素一起使用),並且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上方的同一頁面上還有另一種形式。
誰能幫助我。 謝謝
嘗試這個
$("input[name='del[]']:checked").each(function (index, obj)
{
checked.push(parseInt($(obj).val()));
});
我不確定,但是我會嘗試以下操作:
您確實需要像Firebug這樣的工具來告訴您要發送到服務器的數據。 單擊“網絡”選項卡,您可以准確看到要發送到服務器的內容和接收到的內容。 這將告訴您問題是出在客戶端還是服務器上。
知道“ console.log(checked);”的輸出將非常方便。 這將告訴我們是否有任何內容要發送到服務器。
您需要驗證jquery select字符串匹配的元素數量。 試試這個:console.log($(“ input [name ='del []']:checked”)。length)這將告訴您是否確實有任何元素被匹配。 我懷疑元素名稱中的方括號會混淆jquery選擇器,因此實際上沒有任何匹配。 嘗試僅將其命名為“ del”而不加括號,然后看看是否可行。
最后,在“每個”函數循環中需要console.log語句,該語句輸出.value()的值,因此您知道將正確的值壓入了數組
因此,您可能需要更改的幾件事。
將輸入名稱從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);
});
});
});
我在這里可能會丟失它,但是您的Ajax中的網址是否需要具有.php擴展名? 否則,您可以將PHP更改為僅具有var_dump($_REQUEST);
查看正在發送到頁面的任何參數(GET或POST)。
解:
$.get('ajax-requests/delete-images', {del: checked} , function(data){
至
$.get('ajax-requests/delete-images/', {del: checked} , function(data){
我要跳個橋
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.