0

ユーザーがテーブル内のリンクをクリックして行を削除できるようにしたいデータのテーブルがあります。ページを更新し、ユーザーが選択した行をテーブルから削除したいと考えています。これは、テーブルのデータベースを変更する php 関数の呼び出しに基づいて行われます。私がこれまでに持っているのは

<tr>
    <td width = '35%'><?php echo $the_title?></td>
    <td width = '20%'><?php echo $val1?></td>
    <td width = '10%'><?php echo $val2 ?></td>
    <td width = '15%'><a href='?remove_now=<?php echo $row?>' name=''>Remove Now</a></td>
</tr>
<?php

if (isset($_GET['remove_now'])){
    $row_to_remove=$_GET['remove_now'];
    my_func ($row_to_remove);}

?>

[今すぐ削除] リンクをクリックすると、ページが変更されます。これは、既にハッシュ化されたページにいるためです。これは望ましくありません。my_func も実行しません。何かご意見は?ありがとう

4

4 に答える 4

1

PHP はサーバー側で実行され、ページの更新はクライアント (ブラウザー) で実行されます。PHPコードを実行したい場合は、ページを更新するか、探しているサーバー上の「ページ」に実際にアクセスし、そのデータを取得して利用可能にするjavascript ajax呼び出しを使用する必要があります。現在のページ (ajax 呼び出しを行ったページ) へ。

ページを操作するだけで、サーバーからのデータが不要な場合は、javascript を使用してください。Javascript は、php ではなく dom 操作用です。

于 2013-09-13T17:23:29.200 に答える
0

href 属性の終了引用符が間違っています。このようにphpタグを閉じた後でなければなりません。

<td width = '15%'><a href='?remove_now=<?php echo $row?>' name=''>Remove Now</a></td>

はい..リンクをクリックするだけで、javascriptとajaxが機能し、同じページが表示されます。URL を変更したくない場合はheader("Location ....")、 my_func 呼び出しの後に置きます

乾杯

于 2013-09-13T17:40:27.080 に答える
0

データベースからエントリを削除しようとしているように思えますが、少し後ろ向きに考えているだけです。これを行う方法を理解するのに役立つ簡単なロジックを次に示します。

// See if they just deleted something
// If so we will delete the data and reload the page
if(isset($_GET['delete_id']))){
  // Run the code that deletes the entry from the database
  deleteFromDatabase($_GET['delete_id']);
  // Now that we've done that just cleanly reload the page
  header('Location: '.$_SERVER['PHP_SELF']); // This refers to the current page without the $_GET query string - there must not be any page output before you call this
  die(); // Always kill the script after reloading the location header
}

// Here's your normal output (whatever you would normally do for output)
getTableData();
outputTable();
echo '<table>Whatever etc...';
?>
于 2013-09-13T17:43:43.480 に答える
0

まあ、phpでやろうとしていることはできません。必要なことを行うには、javascript を使用する必要があります。

あなたが望むものを達成するためのいくつかの方法があります

1) JavaScript を使用して、ページに既にレンダリングされているテーブルを操作します。

また

2) php を使用して、ページが最初に読み込まれるときに、目的の行なしでテーブルをレンダリングします。

行削除プロセスの一部として php を使用する必要がある場合は、ajax を調べる必要があります。

あなたのコメントに基づいて、次のようなことを試してください:

<tr>
    <td width = '35%'><?php echo $the_title?></td>
    <td width = '20%'><?php echo $val1?></td>
    <td width = '10%'><?php echo $val2 ?></td>
<?php
$maxnumrows = 10;
for($i=0;$i<$maxnumrows;$i++){
    if (    (!isset($_GET['remove_now'])) || ( (isset($_GET['remove_now'])) && ($_GET['remove_now']!=$i) ) ){
        ?>
        <td width = '15%'><a href='?remove_now='<?php echo $i?> name=''>Remove Now</a>  </td>
<?php
    }
}
?>    

</tr>
于 2013-09-13T17:23:18.070 に答える