2012-02-24 8 views
5

formularz podając kod Ajax:Odzyskiwanie szeregować dane w pliku php o nazwie użyciem 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);  

      } 

HTML Form

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

w moim php

$ polu = $ _ POST [ 'box1' ];

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

Odpowiedz

6

Twoje js powinno być tak:

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

Z php powinieneś zapętlić tablicę wyników.

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

Edit: Musisz użyć funkcji serializeArray w jQuery. Wtedy zadziała z tym kodem.

+0

Dokonałem zmian, co sugerujesz mi, ale to daje mi następujący komunikat o błędzie: Ostrzeżenie: podano niepoprawny argument dla foreach() w – MAK

+0

Dziękuję człowieku ... działa dobrze. – MAK

-1

$ box = $ _ POST ['box']; i $ box to tablica.

+0

$ _POST to także tablica, więc twoja odpowiedź jest zbędna. Zastanawiam się, co zamierzasz zrobić z '$ box'? Sugerujesz coś? –

0

Zmień

data: "box1="+str, 

do

data: str, 

serialize() będzie produkować ciąg jak: input1=value1&input2=value2. Więc w php można uzyskać dostęp do każdej wartości z, na przykład $value1 = $_PHP['input1'];

1

danych w PHP będzie zawierać ciąg jak to

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

, dzięki czemu można uzyskać Value1 korzystając $_POST['field1] wartość2 z $_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

Pod warunkiem, że serwer odbiera ciąg znaków, który wygląda mniej więcej tak

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

... coś w tym jest chyba wszystko, czego potrzebujesz:

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

$ params powinna następnie być tablicą wymodelowaną, jak można się tego spodziewać. Uwaga: działa to również w przypadku tablic HTML.

Zobacz następujący uzyskać więcej informacji: http://www.php.net/manual/en/function.parse-str.php

nadzieję, że to pomocne. Powodzenia!

0

twoi JS powinno być jak ten -

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); 
      } 
    }); 

Teraz to zrobić w skrypcie php -

print_r($_POST); 

otrzymasz wszystkie dane formularza w oknie alertu.

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

var_dump ($ dane [ 'skrzynki']);

+0

niektóre wyjaśnienia rozwiązania pomogłyby wszystkim. – jjj