2012-04-09 6 views
0

各レコードの単一のtsidの値を取得していますが、チェックされたラジオボタンの値は配列に返されません。どんな助けもありがとうございます。ラジオボタンのチェックで複数の行を更新

PHP:

// Set the timesheets to set status approved/rejected 
// find out how many records there are to update 
$size = count($_POST['tsid']); 

// start a loop in order to update each record 
$i = 0; 
while ($i < $size) { 
// define each variable 
$tsid = intval($_POST['tsid'][$i]); 
$personnelid = intval($_POST['personnel'][$i]); 
print "TSID: " . $tsid . "<br>"; 
print "TSuser: " . $personnelid . "<br>"; 
if ($tsid > 0 && $personnelid > 0) { 
// do the update and print out some info just to provide some visual feedback 
$query = "Update timesheets set status='1' where id= '$tsid' LIMIT 1"; 
mysql_query($query) or die ("Error in query: $query"); 
} 
++$i; 
} 
mysql_close(); 

はHTML:

<input type="hidden" name="tsid[]" value="<?PHP echo $row['id']; ?>"> 
<li data-role="fieldcontain"> 
    <a href="tsapprove.php?id=<?PHP echo $row['id']; ?>"><p><?PHP echo $row['personnel']; ?></p> 
    <p><?PHP echo $row['name']; ?></p> 
    <p class="ui-li-aside"><strong><?PHP echo $row['totalhrs']; ?> H</strong></p> 
<fieldset data-role="controlgroup" data-type="horizontal"> 
    <input type="radio" name="personnel[]" id="1" value="<?PHP echo $row['personnel']; ?>" /> 
     <label for="1">Approve</label> 
     <input type="radio" name="personnel[]" id="2" value="<?PHP echo $row['personnel']; ?>" /> 
     <label for="2">Reject</label> 
    </fieldset> 
</a> 
<a href="tsapprove.php?id=<?PHP echo $row['id']; ?>">View Details</a> 
</li> 
+0

どの部分が0を返しますか?それは$ size、$ iまたはtsidですか? –

+0

data-role = "fieldcontain"の後、

+0

そのラジオボタンの値の人私は何も得られません。 TSIDが正しく返されます。 –

答えて

0

うまくいけば、あなたはこれをつなぎ合わせることができます。

<? 

$size = count($_POST['tsid']); 

echo "<pre>";print_r($_POST);echo "</pre>"; 

$i = 0; 
while ($i < $size) { 
    $tsid = $_POST['tsid'][$i]; 
    $pid = $_POST['personnel_'.$i]; 


    print "TSID: " . $tsid . "<br />"; 
    print "TSuser: " . $pid . "<br />"; 

    $i++; 
} 

?> 
<form method="post"> 
<!--tsid[0] - $i = 0--> 
<input type="hidden" name="tsid[]" value="1" /> 
<input type="radio" name="personnel_0" value="111" /> 
<input type="radio" name="personnel_0" value="222" /> 

<!--tsid[1] - $i = 1--> 
<input type="hidden" name="tsid[]" value="2" /> 
<input type="radio" name="personnel_1" value="333" /> 
<input type="radio" name="personnel_1" value="444" /> 
<input type="submit" /> 
</form> 

を基本的に、あなたは人員を戻ってきている方法は、本当に仕事doesntの。だから私は少しこれを単純化し、基本的に人事のためのラジオを別に設定しました。配列の代わりに、実際の名前をTSID値で設定します。 「personnel_」の後に番号を持っているだけでなく、私はハード1および2をコード化されていますが、あなたの$行[「ID」]で置き換えます

がうまくいけば、この0..1..2など

だろう役に立った!

編集:コードでの問題はありません

+0

これは問題だと思う。 JQMでCSSクラスを無効にすると、期待どおりに動作します。ただし、オンにすると、無線は無視されます。ドキュメントは次のようなことを示しています: フォームを正しく更新するためにPHPに送る方法を確かめてください。 \t $( '入力[名前=人員]:チェック済み'、 '#ts')。 –