0

私はphpにいくつかの行を持つテーブルを持っています。各行には、IDを持つデータセットが含まれています。ミッションは、IDに応じてデータベース内のフィールドをスキップすることです。IDは不明です。

送信ボタンでデータセットをスキップする予定です。また、各データセットには1つのボタンがあります。フォームはPHP_SELFに送信され、関数内でデータベースの更新を行います。

ここでの課題は、どのボタンが押されていないかを確認することです。IDが1から99999の間であるため、ケースブロックを介して実行することはできません。

誰かが私を助けることができますか。ボタンのタイプ、名前、IDの名前を変更できます。IDはすでに行セットにあります。

どうもありがとうございます!フランク

<form id="form1" name="form1" method="POST" action="<?php echo $editFormAction; ?>">
<fieldset><legend>Ihnen zugewiesene Services</legend>
<table width="100%" border="1">
  <tr>
    <th>Schalter</th>
    <th width="100%">Servicename</th>
    <th width="50">Status</th>
  </tr>
  <?php do { ?>
    <tr>
      <?php if ($row_Recordset1['sendToVoicebox'] == 0) { ?>
        <td><input type="submit" name="<?php $row_Recordset1['service_id']; ?>" id="btnOn" value="Voicebox ein" /></td>
      <?php } else { ?>
        <td><input type="submit" name="<?php $row_Recordset1['service_id']; ?>" id="btnOn" value="Voicebox aus" /></td>
      <?php } ?>          

      <td><?php echo $row_Recordset1['service_id']; ?></td>

      <?php if ($row_Recordset1['sendToVoicebox'] == 0) { ?>
      <td><img src="images/VoiceboxOff.png" width="64" height="64" alt="pause" /></td>  
      <?php } else { ?>
      <td><img src="images/VoiceboxOn.png" width="64" height="64" alt="pause" /></td>   
      <?php } ?>          
    </tr>
    <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
</table>
</fieldset>
<input type="hidden" name="MM_update" value="form1" />
<input name="service_id" type="hidden" value="<?php echo $row_Recordset1['service_id']; ?>" />

<?php if ($row_Recordset1['sendToVoicebox'] == 0) { ?>
    <input name="update" type="hidden" value="1" /> 
<?php } else { ?>
    <input name="update" type="hidden" value="0" /> 
<?php } ?>          

</form>

関数でIDを取得するにはどうすればよいですか?

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  $updateSQL = sprintf("UPDATE acdbasis SET userfield_2=%s WHERE service_id=%s",
                       GetSQLValueString($_POST['update'], "text"),
                       GetSQLValueString($_REQUEST['submit'], "int"));
4

2 に答える 2

0

配列を使用できます

<?php if ($row_Recordset1['sendToVoicebox'] == 0) { ?>
<td><input type="submit" name="button[<?php echo $row_Recordset1['service_id']; ?>]" id="btnOn" value="Voicebox ein" /></td>
<?php } else { ?>
<td><input type="submit" name="button[<?php echo $row_Recordset1['service_id']; ?>]" id="btnOn" value="Voicebox aus" /></td>
<?php } ?>

<?php
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
$service_id = array_keys($_POST["button"]);
$service_id = $service_id[0]; //older php versions don't allow direct function...)[key]
$updateSQL = sprintf("UPDATE acdbasis SET userfield_2=%s WHERE service_id=%s",
                   GetSQLValueString($_POST['update'], "text"),
                   GetSQLValueString($service_id, "int"));

あまり洗練されたソリューションではありませんが、$ _ POSTを繰り返し処理して、キーが数値かどうかを確認するよりも優れていると思います。

于 2012-12-02T03:09:01.357 に答える
0

$_GETPHP配列機能を使用するのはどうですか?

  <?php if ($row_Recordset1['sendToVoicebox'] == 0) { ?>
    <td><input type="submit" name="service_id[<?php echo $row_Recordset1['service_id']; ?>]" id="btnOn" value="Voicebox ein" /></td>
  <?php } else { ?>
    <td><input type="submit" name="service_id[<?php echo $row_Recordset1['service_id']; ?>]" id="btnOn" value="Voicebox aus" /></td>
  <?php } ?>

フォーム投稿ページ:

$serviceId = $_POST['service_id'][0]; // Do the work with the service id

または、ボタンのvalue属性を使用して、必要なものを伝えることができますか?さらに、<button />タグを使用して、バックエンドに送信されたものとは異なる値を顧客に表示できます。

<button type="submit" name="service_submit_id" value="<?php echo $row_Recordset1['service_id'];?>">Text Here</button>
于 2012-12-02T03:14:17.990 に答える