2017-11-12 5 views
0

나는 많은 많은 입력이 양식을하고 난 PHP를 proccesing에 내 모든 형태의 데이터를 전송하려면 다음 코드를 사용합니다serialize() AJAX에서 PHP에서 여러/여러 POST 변수를 얻는 가장 좋은 방법은 무엇입니까?

HTML :

<form> 
<input type="text" name="a" /> 
<input type="text" name="b" /> 
<input type="text" name="c" /> 
<input type="text" name="d" /> 
<input type="text" name="e" /> 
<input type="text" name="f" /> 
<button type="button" onclick="update()">UPDATE</button> 
</form> 

<!-- HERE I SHOW THE VALUES FROM ABOVE INPUTS --> 
<input type="text" id="a" /> 
<input type="text" id="b" /> 
<input type="text" id="c" /> 
<input type="text" id="d" /> 
<input type="text" id="e" /> 
<input type="text" id="f" /> 

JS :

<script> 
function update() 
{ 
    var str = $("form").serializeArray(); 
    $.ajax({ 
     type: "POST", 
     url: "update.php", 
     data: str, 
     dataType: 'json', 
     success: function(result) 
     { 
      document.getElementById("a").value = result.a; 
      document.getElementById("b").value = result.b; 
      document.getElementById("c").value = result.c; 
      document.getElementById("d").value = result.d; 
      document.getElementById("e").value = result.e; 
      document.getElementById("f").value = result.f; 
     }, 
     error: function(result){ 
      console.log("Error:"); 
      console.log(result); 
     } 
    }); 
    // return false; 
} 

</script> 

AND 업데이트 .php :

<?php 
$a = $_POST['a']; 
$b = $_POST['b']; 
$c = $_POST['c']; 
$a = $_POST['d']; 
$b = $_POST['e']; 
$c = $_POST['f']; 

$arr = array(
'a' => $a, 
'b' => $b, 
'c' => $c, 
'a' => $d, 
'b' => $e, 
'c' => $f 
); 

echo json_encode($arr); 

?> 
  1. 첫 번째 질문 : PHP에서 모든 serialize() 변수를 전달하는 간단한 방법이 있습니까? 코드 에서처럼 모든 변수를 작성하는 대신에? 너무 많아서 수동으로 모두 추가해야한다고 생각합니다.

    $a = $_POST['a']; 
    $b = $_POST['b']; 
    $c = $_POST['c']; 
    $d = $_POST['d']; 
    $e = $_POST['e']; 
    $f = $_POST['f']; 
    
  2. 대신에 다음의 코드를 사용하는 다중 입력에 PHP로부터 AJAX 결과 배열 값을 전달하는 간단한 방법이 있는가?

    document.getElementById("a").value = result.a; 
    document.getElementById("b").value = result.b; 
    document.getElementById("c").value = result.c; 
    document.getElementById("d").value = result.d; 
    document.getElementById("e").value = result.e; 
    document.getElementById("f").value = result.f; 
    

    내가 양식에 너무 많은 입력을 가지고 있고 수동으로 그 변수를 추가하고 싶지 않은 말을 시도하고 모든

. 너무 많은 시간이 걸리며 실수로 이드와 이름을 얻는 것이 쉽습니다.

답변

1

당신은 그런 PHP는이

echo(json_encode($_POST['form'])); 
+0

나는 그것을 시도 줄 뜻을

<input name='form[a]' type='text'/> <input name='form[b]' type='text'/> <input name='form[c]' type='text'/> <input name='form[d]' type='text'/> 

을 의미 배열 대신 각각의 이름 ..로 양식 입력을 전달할 수 있습니다. 감사. –