2016-08-15 1 views
-1

私の質問は:ボタンをクリックするとcountTableにnumber(int)を挿入するにはどうすればいいですか?どのようにhtml(php)からint値のみをmysqlデータベーステーブルに記録するのですか?

ここは私のサンプルコードです、ありがとうございます。

HTML

<form action="check.php" method="POST"> 
    <button name="a">a</button> 
    <button name="b">b</button> 
    <button name="c">c</button> 
</form> 

check.php

require('connect.php'); 
$A = $_POST["a"]; 
$B = $_POST["b"]; 
$C = $_POST["c"]; 
$sql = "INSERT INTO countTable (numA,numB,numC) 
VALUES(:numA,:numB,:numC)"; 
$pre = $conn->prepare($sql); 

$pre->bindValue(':numA',$A); 
$pre->bindValue(':numB',$B); 
$pre->bindValue(':numC',$C); 

$r = $pre->execute(); 

のMySQL countTable

create table countTable (
id varbinary(64) not null, 
numA int(100), 
numB int(100), 
numC int(100), 
primary key(id) 
); 
+1

このコードはどのように失敗しますか? – David

+0

@David Aボタンをクリックするとエラーが残ります。BとCボタンはこのように表示されます - >通知:未定義のインデックス.... – Tuang

+1

a、b、cは整数ではないので整数に入れようとしていますフィールドは意味がありません –

答えて

1

ボタンは、フォーム入力を捕捉するためのあまりない、イベントを作成するために使用されます。あなたは実際に値を設定したりキャプチャしているわけではないので、とにかくあなたのPOST変数が空であることを期待してください。

あなたが達成しようとしているものに基づいて、私は次のことをお勧めします:

<form action="check.php" method="POST"> 
    <input type="hidden" name="option" value="A" /> 
    <input type="submit" value="A" /> 
</form> 

<form action="check.php" method="POST"> 
    <input type="hidden" name="option" value="B" /> 
    <input type="submit" value="B" /> 
</form> 

<form action="check.php" method="POST"> 
    <input type="hidden" name="option" value="C" /> 
    <input type="submit" value="C" /> 
</form> 

//PHP side 
$selected_value = $_POST['option']; 

//... do more stuff 

彼は、我々はすべての表現の隠し値を持つ3種類の形態を持っています。この隠し値は、フォームが送信された後にPOST経由で送信されます。

+0

を使ってください。これは役に立つかもしれませんが、値がstring = "A"でない場合のやり方は、 int値が必要です。ボタンをクリックするとテーブルに記録されます – Tuang

+0

値を検証する必要があります。 PHPのドキュメントで 'filter_var()'と 'is_numeric()'をチェックしてください – Chris

関連する問題