2012-02-23 9 views
0

데이터베이스에 값을 삽입하려고하는 행이 몇 개있는 양식이 있습니다. jquery serialize를 사용하여 페이지에 아약스 게시물을 보냅니다. 이 시점에서 값을 얻을 수 있도록 배열에서 값을 올바르게 보내는 방법에 대해 분실했습니다. 동일한 입력 ID를 가진 약 10 개의 행이 있습니다. 수량, 가격, 부품 번호. 나는 열 개를 PHP 페이지로 보낸다. 이 10 개의 행을 찾아서 삽입해야합니다. 어떤 도움을 주셔서 감사합니다. 여기에 코드가 있습니다.Jquery serialize하고 데이터베이스에 PHP를 삽입하십시오.

<form id="form"> 
////These row repeat. Total of 10 
<input name="PartQuantity[]" type="text" id="PartQuantity" size="2" /> 
<select name="PartType[]" id="PartType"> 
<input name="PartNumber[]" type="text" id="PartNumber" size="10" /> 
</form> 

JQuery와 나는 단지이 배열 중 하나가 아닌 그들 모두에 대한 값을 인쇄 할 수 있습니다

<?php 
$quantity_array = $_POST['PartQuantity']; 
foreach ($quantity_array as $quantity) 
{ 
///insert values 
} 
?> 

<script> 
$(document).ready(function(){ 
$('.showResults').live('click', function() { 

var post = $('#form').serialize(); 
jQuery.ajax({ 
     type: "POST", 
     url: "ajax/page_activity/forms/insert_parts.php", 
     data: post, 
     cache: false, 
     success: function(html) 
      { 

      alert(html) 

       } 
     }); 
}); 

}); 
</script> 

PHP 페이지.

답변

0
$query = ''; 
for ($i = 0; $i < count($_POST['PartQuantity']);$i++){ 
    $query .= "(".mysql_real_escape_string($_POST['PartQuantity'][$i]).",".mysql_real_escape_string($_POST['PartType'][$i]).",".mysql_real_escape_string($_POST['PartNumber'][$i])."),"; 
} 
$query = substr($query,0,strlen($query) - 1); //STRIP LAST COMMA 
$result = mysql_query("insert into <TABLE> (partquantity,parttype,partnumber) VALUES $query") or die(mysql_error()); 
+0

SQL 주입은 분명히 피할 수있는 것입니다. –

+0

글쎄,이 질문에 답하기는 다소 어렵습니다. "방금 방문"하겠습니까? –

+0

downvote는 가장 악명 높은 공격에 널리 열려있는 코드를 게시하기위한 것입니다. –

1

코드에 문제가 없습니다.

Array 
(
    [PartQuantity] => Array 
     (
      [0] => 1 
      [1] => 2 
      [2] => 3 
     ) 

    [PartType] => Array 
     (
      [0] => 1 
      [1] => 2 
      [2] => 1 
     ) 

    [PartNumber] => Array 
     (
      [0] => 1 
      [1] => 2 
      [2] => 3 
     ) 

) 
: 당신이 값을 올바르게 잡아 할수 없어 경우

는 답을 포함하여 실제 데이터, 실제 오류 또는 아래 인 print_r처럼 ($ _ POST)를 정보, JQuery와 버전을 더 넣어 디버깅, 오타를 고려

+0

답장을 보내 주셔서 감사합니다. 위와 같이 배열을 인쇄 할 수 있습니다. 내가 붙어있는 곳은이 값들을 데이터베이스에 삽입하는 방법이다. 예를 들어 1 행 PartQuantity : 1, PartNumber : xxx, PartType : 3 ... 다음 행 PartQuantity : 2, PartNumber : xyz, PartType : 4 ... 등등. partNumber와 같은 배열 중 하나만 삽입 할 수 있습니다. 그러나 나는 그 행의 모든 ​​가치들을 필요로한다. –

+1

해당 배열을 인쇄 할 수 있으면 루프를 반복하여 그에 따라 쿼리를 작성하십시오. – Kamal

관련 문제