2012-01-06 49 views
1

JQUERY:在PHP讀取序列jQuery的數據(多個複選框)

$(document).ready(function(){ 
    $('form').submit(function(){ 
     var content = $(this).serialize(); 
     //alert(content); 
     $.ajax({ 
      type: 'POST', 
      dataType: 'json', 
      url: 'http://localhost/test/generate', 
      timeout: 15000, 
      data:{ content: content }, 
      success: function(data){ 
       $('.box').html(data).fadeIn(1000); 
      }, 
      error: function(){ 
       $('.box').html('error').fadeIn(1000); 
      } 
     }); 
     return false; 
    }); 
}); 

HTML:

<form> 
<input type="checkbox" value="first" name="opts[]"> 
<input type="checkbox" value="second" name="opts[]"> 
<input type="checkbox" value="third" name="opts[]"> 
<input type="submit"> 
</form> 

我如何處理(或讀取)多個選中的複選框在PHP價值?我試着做$_POST['content']來抓取序列化的數據,但沒有運氣。

+1

是否有你需要發送數據作爲JSON理由嗎?表單的默認帖子將使您的數據可用爲'$ _POST ['opts']'(它將返回一個數組)。如果你需要將它保存爲json,請嘗試'var_dump($ _ POST)'來查看你得到的結果。 – Grexis 2012-01-06 08:11:58

+0

他沒有將數據作爲JSON發送。 'dataType'參數表示服務器響應內容類型,而不是請求。 – 2012-01-06 08:13:41

+0

@Darin啊,我沒有使用jQuery很多,(它顯示?:D),但我指的是他的形式和'data:{content:content}'行的序列化 – Grexis 2012-01-06 08:17:26

回答

5

替換:

data:{ content: content } // <!-- you are prefixing with content which is wrong 

有:

data: content 

現在,在你的PHP腳本可以使用$_POST['opts']通常應返回數組。

+0

你讓我了!謝謝。 – Michelle 2012-01-06 08:25:40

+0

謝謝 我每次都用錯方法... – softsdev 2013-09-04 02:37:03

1

嘗試

echo $_POST['opts'][0]. "<br />"; 
echo $_POST['opts'][1]. "<br />"; 
echo $_POST['opts'][2]. "<br />"; 

你發佈一個陣列到服務器,並在後變量「選擇採用」可用。記住:未經檢查的箱子不會被張貼。

-2

有你的代碼中的錯誤:與擴展名

  1. URL應該url: 'http://localhost/test/generate.php'
+0

我正在使用框架 – Michelle 2012-01-06 08:25:22

0

所選擇的答案仍然沒有爲我工作,但這裏是什麼做的:

var checkedBoxesArr = new Array(); 
$("input[name='checkedBoxes']:checked").each(function() { 
    checkedBoxesArr.push($(this).val()); 
}); 
var checkedBoxesStr = checkedBoxesArr.toString(); 
var dataString = $("#" + formID).serialize() + 
        '&checkedBoxesStr=' + checkedBoxesStr; 

[上述代碼放在您的JavaScript,串行化形式的數據之前]
首先,循環選中的框並將它們放入數組中。
接下來,將數組轉換爲字符串。
最後,將它們手動追加到序列化表單數據 - 這樣,您可以在PHP中引用字符串,並與其他序列化數據一起引用。

這個答案出來一部分來自這個帖子:Send multiple checkbox data to PHP via jQuery ajax()