2012-07-13 5 views
0

나는 현재 작성중인 양식에 몇 가지 문제점이 있습니다. 이 양식은 다음과 같이 내 PHP 스크립트에서 수신 Ajax 양식 제출 PHP로 수신 제출

<script type="text/javascript"> 
$(document).ready(function() 
{ 
    $("#submit").click(function() 
    { 
    var q1 = $("#q1").val(); 
    var q2 = $("#q2").val(); 
    var answers = "page=1&q1="+q1+"&q2="+q2; 

    $.ajax({ 
    type:'POST', 
    url:'add.php', 
    data:answers, 
    success:function(response) 
    { 
    $("#answers").html(response); 
    } 
    }); 
    });  
}); 
</script> 

:

$page = $_POST['page']; 
$q1 = $_POST['q1']; 
$q2 = $_POST['q2']; 
echo "Page: " .$page . "<br/>Question 1: " . $q1 . "<br/>Question 2: " . $q2; 

의 I이 코드와 데이터를 처리하기위한 것입니다 내 PHP 스크립트에 양식을 게시 할 코드를 그것의 모든 문제는이 양식이 X 입력을 처리 할 수 ​​있고 또한 이름을 알지 못하는 입력을 처리 할 수 ​​있기를 원한다는 것입니다. 5 개의 텍스트 상자 또는 2 개의 텍스트 상자 + 라디오 버튼 등을 얻을 수있는 것처럼. ALL $ _POST 데이터를 수집 한 다음이를 폭발시킬 수있는 방법이 있습니까? 그렇다면 데이터베이스를 준비 할 수 있습니까? 모든 질문 ID (값) 및 모든 대답 값 (라디오 버튼 ID를 나타내는 문자열 또는 int 일 수 있음)을 복구하려고합니다.

+0

양식이 Ajax를 사용하여 제출되었다는 사실은 질문과 관련이없는 것처럼 보입니다. – JJJ

+0

죄송합니다. 확실하지 않았습니다. 죄송합니다보다 더 안전. 그러나 나는 내 아약스 충만 함이 충분하지 않다는 것을 알아 냈으므로 모든 나쁜 것은 아닙니다. – Tom

+0

또한 누군가가이 질문에 무엇이 잘못되었는지 알려 주시면 같은 실수를 다시하지 않기 위해 최선을 다할 것입니다. – Tom

답변

1

첫째 : Let jQuery build your data string는, 현재의 방법은 사전에 각 필드를 알고 당신을 필요로하고 거기에 특수 문자와 데이터를 처리 할 수 ​​없습니다.

url:'add.php', 
data: $('#myForm').serialize(), 
success:function(response) 

둘째 : 그래서, 그것은 배열입니다

$_POST['answer'][] 

:

<input type="radio" name="answer[1]" value="foo"> 
<input type="radio" name="answer[1]" value="bar"> 

당신은 다음과 같이 액세스 할 수 있습니다 : 같은 이름의 규칙으로 PHP 여러 필드를 사용하여 필드 이름을 루프에서 '1'과 'foo'또는 'bar'를 얻을 수 있습니다.

+0

마법! 매력처럼 작동합니다. 무리 감사. – Tom

4

단순히 POST 및 GET을 배열로 처리하여 모든 POST 및 GET 요청 매개 변수를 반복 할 수 있습니다. 또한

print_r($_POST); 

: 예를 들어 당신이 입력 필드의 variating 금액을 처리하려면

foreach ($_POST as $key => $value) { 
    echo $key." = ".$value."<br>"; 
} 

, 당신은 증가 명명 규칙을 정의 할 수 있습니다 및 사용은 배열에 그들 모두를 수집하는 루프.

+0

니스! 고마워요 :) 내 걱정을 바로 해결! – Tom

+1

당신은 30 초입니다. 빨리 ;-) – timod

+1

@ TimoDörsching 나는 당신의 대답을 엄지 손가락으로 줄 것이다! : D – Leonard

2

with print_r ($ _ POST); 당신은 모든 가치를 볼 수 있습니다. 이 같은

또는 무언가 :

foreach ($_POST AS $key => $value) { 
echo $key." => ".$value."<br>"; 
}