2014-03-30 3 views
0

데이터베이스에 제출하고 약간의 도움이 필요한 첫 번째 양식을 만드는 중입니다. 나는 그것의 대부분을 작동하지만 어디에서 붙어있는 새 행을 추가하는 것입니다. 내가 원하는만큼 많은 행을 추가 할 수있는 자바 스크립트 함수가 있지만 거기에 2 문제가 있습니다. 첫 번째는 Javascript를 사용하여 PHP 폼을 제출했을 때 추가 된 새로운 필드를 "보지 못하는 것"입니다. 두 번째 문제는 키를 설정하고 있다는 것입니다. 자바 스크립트에서 설정하는 방법을 모르는 값 관계.값에서 양식 이름 설정

문제는 코드에서 볼 수 있듯이 2 개의 필드가있는 테이블 행을 설정하고 하나는 키이고 다른 하나는 값이지만 어떤 것을 모를 때 어떻게 선언 할 수 있습니까? 거기에 타이핑 할거야? 어떤 도움을 주시면 감사하겠습니다

<? 
if ($_REQUEST['do'] == 'save'){ 
include 'db.php'; 
foreach ($_POST as $key => $value) 
    { 
    $sql="UPDATE settings SET value = \"$value\" WHERE name = \"$key\""; 
$db->query("$sql"); 
echo "$sql<br>"; 
    }; 

}; 
?> 

: 여기

<script type="application/javascript"> 
    function addRow(S_ID, S_NAME){ 
     var addRow ='<tr><td><input type="text" name="" value=""></td><td><input type="text" name="" value=""></td></tr>'; 
     $("#applyTable").append(addRow); 
     } 
</script> 
<table width=400> 
<tr><th>Setting</th><th>Value</th></tr> 
</table> 

<form action="functions.php?do=save" method="POST" id="saveSettings"> 
<table class="myTable" border="1px" style="width:400px;" > 
<tbody id="applyTable"> 
<? 
include 'db.php'; 
    foreach($db->query('SELECT * from settings') as $row) { 
     print_r("<tr><td>" . $row[1] . "</td><td><input type=\"textbox\" name=\" 
     " . $row[1] . "\" value=\"" . $row[2] . "\"></td></tr>"); 
    } 
?> 
</tbody> 
</table> 
<input type="submit"> 
<input type="button" value="Add" border="1px" onclick="addRow()" /> 
</form> 

는에 제출됩니다 페이지입니다. 우선

+0

변수와 함수에 대해 'addRow'라는 이름을 사용하고 있습니다.이 함수에는 전달되지 않은 두 개의 매개 변수가 들어 있습니다. –

+0

PHP가 새 입력을 읽지 않는 이유는 이름을 지정하지 않았기 때문입니다. 이것을 위해 [HTML input array] (http://stackoverflow.com/questions/1010941/html-input-arrays)를 사용할 수 있습니다. –

+0

Cheezburger, 입력 배열의 트릭을 사용하여 "유형"(텍스트 상자, 텍스트 영역, true/false) 및 "상태"(actice/inactive)도 설정할 수 있다고 생각합니다. – Alan

답변

0

, 그것은 그 키와 값이 입력 요소의 이름으로 설정되지 않은 것, 나는

function addRow(S_ID, S_NAME){ 
     var addRow ='<tr><td><input type="text" name="'+s_ID+'" value=""></td><td><input type="text" name="'+S_NAME+'" value=""></td></tr>'; 
     $("#applyTable").append(addRow); 
    } 

및 매개 변수 버튼을 클릭하면 설정되지 않습니다, 그것은 뭔가해야 것처럼 보일 것 같아요 같은 : 모든 키와 이름이 같은 경우

<input type="button" value="Add" border="1px" onclick="addRow('mykey', 'myvalue')" /> 

양식 입력 요소에 대한 이름의 부재와 액션 스크립트에 대한 필드를 게시하지 않습니다 , 단지 [[]와 myvalue있는 MyKey에의 mykey 및 myvalue 교체 ] 그들을 배열로 만들려면

+0

여기에 코드를 추가하고 몇 가지 일이 발생했습니다. 어떤 이유로 그것은 값이 "__________value"처럼 돌아올 수 있도록 $ 값 앞에 밑줄 묶음으로 게시되는 기존 데이터를 수정했습니다. 또한 var_dump ($ _ POST)를 수행 할 때 새 행을 여전히 무시합니다.); 새 행 데이터가 표시되지 않습니다. 새 페이지에 넣어야 할 수도 있습니다. 쿼리가 UPDATE이므로 데이터가 다음 페이지로 전달 된 경우에도 SQL 쿼리가 작동하지 않는 것으로 나타났습니다. 그러나이 새로운 INSERT는 결국 INSERT가됩니다. – Alan