2012-02-24 32 views
5

Mẫu gửi mã Ajax:Lấy serialize dữ liệu trong một file php gọi sử dụng ajax

var str = $("form").serialize();  
      alert(str); 
      // var [email protected](str); 
     //alert(uns); 
     $.ajax({ 
      type: "POST", 
      url: "update.php", 
      data: "box1="+str, 
      success: function(value) 
      { 
       $("#data").html(value);  

      } 

Mẫu Html

<form> <input type=checkbox name=box[] value='1'/><input type=checkbox name=box[] value='2'/> </form> 

TRÊN My Php

$ hộp = $ _ POST [ 'box1' ];

How to access the each of the box variable values in php side. 

Trả lời

6

js của bạn nên được như thế này:

var str = $("form").serializeArray(); 
$.ajax({ 
    type: "POST", 
    url: "update.php", 
    data: str, 
    success: function(value) { 
      $("#data").html(value); 
    } 
}); 

Với php, bạn nên lặp mảng kết quả của mình.

$box = $_POST['box']; 
foreach ($box as $x) { 
    echo $x; 
} 

Edit: Bạn phải sử dụng serializeArray hàm trong jQuery. Sau đó, nó sẽ làm việc với mã này.

+0

tôi đã thực hiện thay đổi những gì bạn đề xuất cho tôi, nhưng nó cho tôi thông báo lỗi sau: Cảnh báo: Đối số không hợp lệ được cung cấp cho foreach() trong – MAK

+0

Cảm ơn bạn .. tôi đang làm việc tốt biết. – MAK

-1

$ box = $ _ POST ['box']; và $ box là một mảng.

+0

$ _POST cũng là một mảng, vì vậy câu trả lời của bạn là thừa. Tôi đang tự hỏi bạn định làm gì với '$ box'? Bạn ngụ ý điều gì đó? –

0

Thay đổi

data: "box1="+str, 

vào

data: str, 

serialize() sẽ tạo ra một chuỗi như: input1=value1&input2=value2. Vì vậy, trong chương trình PHP bạn có thể truy cập vào các giá trị bằng, ví dụ $value1 = $_PHP['input1'];

1

dữ liệu của bạn trong php sẽ chứa một chuỗi như thế này

field1=value1&field2=value2&....

vì vậy bạn có thể nhận được value1 bạn sử dụng $_POST['field1], value2 với $_POST['field2']

0
values=$("#edituser_form").serialize();//alert(values); 
    $.ajax({ 
     url: 'ajax/ajax_call.php', 
     type: 'POST', 
     dataType:"json", 
     data: values, 
     success: function(){ 
      alert("success"); 
     }, 
     error: function(){ 
      alert("failure"); 
     } 
    }); 
1

Với điều kiện là máy chủ của bạn đang nhận được một chuỗi trông giống như sau

$("form").serialize(); 
    "param1=someVal&param2=someOtherVal" 

... một cái gì đó như thế này có lẽ là tất cả các bạn cần:

$params = array(); 
    parse_str($_GET, $params); 

$ params nên sau đó là một mảng được mô hình hóa theo cách bạn mong đợi. Lưu ý điều này cũng làm việc với các mảng HTML.

Xem sau để biết thêm thông tin: http://www.php.net/manual/en/function.parse-str.php

Hy vọng rằng sẽ rất hữu ích. Chúc may mắn!

0

JS của bạn nên được như thế này -

var str = $("form").serializeArray(); 
    var postData = new FormData(); 
    $.each(str, function(i, val) { 
       postData.append(val.name, val.value); 
}); 
$.ajax({ 
      type: "POST", 
      data: postData, 
      url: action, 
      cache: false, 
      contentType: false, 
      processData: false, 
      success: function(data){ 
       alert(data); 
      } 
    }); 

Bây giờ làm điều này trong kịch bản php của bạn -

print_r($_POST); 

bạn sẽ nhận được tất cả các dữ liệu mẫu trong hộp cảnh báo.

0
$data = array(); 
foreach(explode('&', $_POST[data]) as $value) 
{ 
    $value1 = explode('=', $value); 
    $data[$value1[0]] = validateInput($value1[1]); 
} 

var_dump ($ data ['box']);

+0

một số giải thích về giải pháp sẽ giúp tất cả. – jjj

Các vấn đề liên quan