2014-09-28 1 views
0

processing.js 및 양식의 게임에서 수집 한 일부 데이터를 내 데이터베이스로 보내려고합니다. 양식의 제출 단추를 누르면 데이터가 데이터베이스로 전송됩니다. 제 문제는 processing.js에서 String 배열을 가져 와서 데이터베이스로 보낼 수 없다는 것입니다.processing.js에서 html로 문자열 배열 당기기

processing.js의 배열 이름은 answerArray입니다.

내 HTML :

<form action="submitted.php" method="post" onsubmit="return js_sendData()"> 
    <input name="email" placeholder="Mail" type="text" class="text" /> 
    </div> 
    <div> 
     <input name="name" placeholder="Full Name" type="text" class="text" /> 
    </div> 
    <input type="submit" value="I solved it!" class="button"> 
</form> 

<script language="JavaScript" type="text/javascript"> 
    function js_sendData() { 
      $.post("save.php", {'answer[]': answerArray}, function(data) { 
      $("#status").html(data);}); 
      return true; 
    } 
</script> 

내 PHP (submitted.php) : 데이터베이스

$con=mysqli_connect(connection details*); 

//Check connection 
if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
$name = $_POST['name']; 
$email = $_POST['email']; 


mysqli_query($con,"INSERT INTO Answer (Name, Mail) 
VALUES ('$name', '$email')"); 

작업을 나던 PHP (save.php)를 저장하는

// 연결 :

 // Connect to the database 
$con=mysqli_connect(connection details*); 

//Check connection 
if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$dta = $_POST['answer']; 

    mysqli_query($con,"UPDATE Answer 
    SET Correct = '$dta[0]', wordOne = '$dta[1]' ORDER BY saveID DESC LIMIT 1"); 

코드 HTML 양식 세부 정보 (메일 및 전자 메일)를 올바르게 업로드하지만 수정 및 wordOne에는 적용되지 않습니다.

+0

왜 응답 배열을 보내는? 그것의 단지 하나, 그리고 그것의 아약스 전화, 기본값을 방지 – Ghost

+0

나는 당신의 답장을 이해하지 못하겠습니까, 당신은 바꿔 말할 수 있습니까? –

+0

배열이 처음부터 무엇입니까? 당신의 입력은 단지 두 개이며,'answerArray'는 어디에서 왔습니까? 당신의 진정한 의도는 무엇입니까? 아약스 제출? 또는 정상 새로 고침 양식 제출? – Ghost

답변

0

당신은 PHP에서 배열을 보내 JSON.stringify() 기능을 사용해야합니다

<script language="JavaScript" type="text/javascript"> 
    function js_sendData() { 
      var answerToSend=JSON.stringify(answerArray); 
      $.post("save.php", {'answer': answerToSend}, function(data) { 
       $("#status").html(data); 
      },'json'); 
      return true; 
    } 
</script> 

를 다음에서 PHP :

$dta= json_decode(stripslashes($_POST['answer'])); 
+0

실제로 배열과 같은 데이터를 보내는 똑같은 방법은 json없이 과거에도 저에게 효과적이었습니다. 그런 경우에는 processing.js에서 직접 ajax 함수를 호출했습니다. 그냥 똑같은, 내가 쓴 것을 시도 했는데도 작동하지 않는다. 왜 그런지는 모르겠지만 데이터베이스는 그 외의 정보를 폼에서받지 못한다. –