0

私は単純なクレジット ページを作成しようとしています。人々はそれだけのクレジットを持っています。名前の横にあるボタンをクリックすると、クレジットが削除されます。

<table border="1">
<tr>
    <td>Name</td><td>Massages left</td>
</tr>

<?php

mysql_connect("localhost","dbuser","password");
mysql_select_db("db");

$command = "select pass_name, credit_left from pass;";
$result  = mysql_query($command);

//If there is, list that particular entry
while ($data = mysql_fetch_object($result)) 
{
    print "<tr><td>" . $data->pass_name . "</td>" . 
          "<td>" . $data->credit_left . "</td></tr>\n"
    // Button here that you click and make credit go down one;
}

?>
</table>

たとえば、Ben - 2credits - click here to remove one. と表示されます。

ありがとう

編集

ここに私が持っているものがあります:
スクリプトは

<script>
function removeOneCredit(str)

{
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("credit").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","removeonecredit.php"+str,true);
xmlhttp.send();
}
</script>

フォームは次のとおりです。

while ($data = mysql_fetch_object($result)) {
    print "<TR><TD>".$data->pass_name."</TD><TD id='credit'>".$data->credit_left."</TD><TD><form><input type='submit' value='- 1' onsubmit='removeOneCredit(?pass_id=".$data->pass_id."&credit_left=".$data->credit_left.")'></form></TD></TR>\n";

}

removeonecredit.php は

<html>
<?php

$pass_id = $_GET[pass_id];
$credit_left = $_GET[credit_left]-1;
//change value
mysql_connect("localhost","user","pw");
mysql_select_db("db");
$command = "update pass set credit_left='$credit_left' where pass_id='$pass_id';";
mysql_query($command);
//now print value
mysql_connect("localhost","user","pw");
mysql_select_db("db");
$command = "select credit_left from pass where pass_id='$pass_id';";
$result = mysql_query($command);
$data = mysql_fetch_object($result);
echo $data->credit_left;



?>

</html>

removeonecredit.php の最後に手動で文字列を渡すと、機能するので、Ajax の部分である必要があります...

4

3 に答える 3

0

ボタンで from を使用し、JavaScript で AJAX スクリプトを使用して、ページをリロードせずにデータベースを更新します。ページのリロードが気にならない場合は、フォームを使用するだけで済みますが、AJAX スクリプトを記述する必要はありません。単一のユーザーのデータベースを更新するには、データベースを反復処理し、id やユーザー名などの一意の識別子で探しているユーザーを見つけることができます。

たとえば、UPDATEMySQL コマンドを使用すると、次のようになります。

UPDATE table_name
SET credits_left='1'
WHERE username='Bob'

したがって、これにより、ユーザー名が「Bob」の人のクレジット値のみが更新されます。これはあまり具体的ではないことは承知していますが、質問をより具体的にしていただければ、より適切にサポートできるかもしれません。

于 2012-12-06T00:38:26.523 に答える
0

関数の引数の = が問題であることがわかりました。ここにエスケープする方法に関する質問を投稿しました: Javascript は等号 PHPをエスケープします。

于 2012-12-10T02:51:04.337 に答える
-1

PHP を使用してその変更を行いたい場合は、フォームを作成して同じページに送信する必要があります。PHP はサーバー上でコードをレンダリングし、HTML をクライアント (コンピューター上のユーザー) に送信します。データベースに反映させたい場合は、mysql クエリを実行してそのフィールドを更新する必要があります。次に、フォームが送信されると、ページの上部で処理でき、新しい出力が読み込まれます。

別のオプションは、javascript を使用することです。この場合、ページをリロードする必要はありません。

<script>
var count = 2;
$(document).on('click', '#clickButton', function(){
    $('#countDiv').text(count--);
});
</script>

そして、あなたのhtml / phpページには、次のようなボタンとid="clickButton"divが必要です<div id="countDiv"></div>

私はこれをテストしませんでした。しかし、それがあなたを助け、正しい方向に導いてくれることを願っています!

于 2012-12-06T00:21:03.340 に答える