0

各レコードの単一のtsidの値を取得していますが、チェックされたラジオボタンの値が配列に返されません。0を取得するだけですか?どんな助けでも大歓迎です。

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>
4

1 に答える 1

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>

基本的に、人員を返す方法は実際には機能しません。そこで私はこれを少し単純化し、基本的に人員の無線を別の方法で設定しました。配列の代わりに、TSID 値を持つ実際の名前を設定します。

1 と 2 をハードコーディングしましたが、$row['id'] に置き換えるだけでなく、"personnel_" の後の数字は 0..1..2 などになります。

うまくいけば、これが役に立ちます

編集:コードに関するいくつかの問題

于 2012-04-09T22:35:38.450 に答える