알았어. 몇 번이나 대답했음을 알지만, 실제로 일하는 것 같지 않습니다!확인란 값을 사용하여 SQL 데이터베이스 업데이트
나는 (열로 설정) 내 데이터베이스 8 주하고 난 아마 그것이 있어야만큼 우아하지 알고
<form method="post" id="updating" action="<?php $_PHP_SELF ?>">
<?php
$count = 1;
foreach ($results as $v) {
while($count<9){
$week = Week.$count;
$checkvalue = $v -> $week;
?>
Week<?echo $count;?> <input type="checkbox" id="Week<?php echo$count;?>" name="week[]" value="<?php echo $checkvalue;?>" <?php if($checkvalue==1){?>
checked="checked"
<?php } ?>
/>
<?php
$count++;
}
}
?>
<input name="update" type="submit" id="update" value="Update">
</form>
을 다음과 같이 나는 PHP로 이들의 값을 표시하지만,하지 올바른 HTML을 출력하고 데이터베이스에 표시된대로 정보를 표시합니다.
<form method="post" id="updating" action="">
Week1 <input type="checkbox" id="Week1" name="week[]" value="1" checked="checked"
/>
Week2 <input type="checkbox" id="Week2" name="week[]" value="0" />
Week3 <input type="checkbox" id="Week3" name="week[]" value="1" checked="checked"
/>
Week4 <input type="checkbox" id="Week4" name="week[]" value="1" checked="checked"
/>
Week5 <input type="checkbox" id="Week5" name="week[]" value="0" />
Week6 <input type="checkbox" id="Week6" name="week[]" value="1" checked="checked"
/>
Week7 <input type="checkbox" id="Week7" name="week[]" value="1" checked="checked"
/>
Week8 <input type="checkbox" id="Week8" name="week[]" value="1" checked="checked"
/>
<input name="update" type="submit" id="update" value="Update">
</form>
난 데 문제는 내가 틱 또는 그 확인란을을 선택 취소하는 경우, 업데이트 된 값을 캡처하고, 따라서 데이터베이스가 제대로 업데이트되지 않는 표시되지 않습니다이다. 자체 게시물 요청이 처리되는 곳은 다음과 같습니다.
<?php if(isset($_POST['update']))
{
$count = 1;
if(isset($_POST['week']) && !empty($_POST['week']))
foreach($_POST['week'] as $w){ echo $w; //prints 1 all the time
$week = Week.$count;
echo $week;//prints out weeks I want to update correctly (database headings)
$query = $db->getQuery(true);
// Fields to update.
$fields = array(
$week.'=' . $db->quote($w));
// Conditions for which records should be updated.
$conditions = array(
'UserID='. (int) $user_id);
$query->update($db->quoteName('tools_engage'))->set($fields)->where($conditions);
$db->setQuery($query);
try {
$result = $db->query(); // Use $db->execute() for Joomla 3.0.
echo ("Values saved and updated </br>");
$count++;
} catch (Exception $e) {
// Catch the error.
}
}
}?>
나는 따라서 이상한 데이터베이스 업데이트 구문, 줌라이 일을 해요,하지만이 작업을 수행하고 내가이 프로그램의 다른 부분을 사용했습니다 그래서 나는 그들이 문제
로하지 거 알아 나는 코드에서 주석을 달았고, 배열 주 []는 내가 체크하거나 체크하지 않은 박스에 상관없이 모든 것에 대해 값 1을 포함하는 것 같다. 그렇다면 분명히 옳지 않은 1/true로 데이터베이스의 모든 값이 업데이트됩니다.
나는 업데이트 양식에 대한 내 HTML 출력에있는 의문점을 가지고 있지만, 어떤 도움을 주셔서 감사합니다.
업데이트 : 좋아 너무 nvuono의 제안에가는 내가 업데이트 한 내 양식은 이제 각각의 이름이 배열의 인덱스를하지 않는 한이
<?php
$count = 1;
foreach ($results as $v) {
while($count<9){
$week = Week.$count;
$checkvalue = $v -> $week;
?>
Week<?echo $count;?> <input type="checkbox" id="Week<?php echo$count;?>" name="week[<?php echo $count;?>]" value="1" <?php if($checkvalue==1){?>
checked="checked"
<?php } ?>
/>
<?php
$count++;
}
}
?>
처럼되고? 그렇다면 이제는 입력 한 순서대로 배열의 모든 값을 인쇄하지 않아야합니까?
즉. 내 논리는 1,0,0,1,0,0,0 (상자 1과 상자 4 확인) 또는 상자가 체크 된 것을 인쇄하는 것입니다. 대신에 1,1을 인쇄하면 어떤 색인인지 알 수 없기 때문에 몇 주 후에 업데이트해야합니다.
이 링크는 아래에 있지만 도움이 될 수도 있습니다. [checkboxes, php 및 post] (http://www.wastedpotential.com/html-multi-checkbox-set-the-correct-way-to) -group-checkboxes /). 올바른 정보가 전송되고 있는지 확인하십시오. (포스트 이전에) $ _Post [ 'week']'가 같은 데이터를 얻었는지 확인하십시오 ... –
고마워요. 내가 겪고있는 특정 문제에 대한 질문은 그것이 의미가 있기를 바랍니다. – robobobobo