データベースから値と名前を取得するボタンがいくつかあるページがあります。私は、ブラウザでそれを点検するときonclick
内の関数に渡された値が正しい複数のボタンの挿入機能を持つボタンにonclickを使用する方法php
<?php
$sqlGetIllness = "SELECT * FROM illnissesandconditions ";
$resultGetIllness = $conn->query($sqlGetIllness);
while ($rowGetIllness= mysqli_fetch_array($resultGetIllness)){
echo "<div class='col-md-3'style='margin-top:20px;'><button onclick='insert(".$rowGetIllness['illness'].");' class='button button1' style=' color:white;' value='".$rowGetIllness['illness']."'>".$rowGetIllness['illness']."</button></div>";
}
function insert($value) {
$value='';
$sqlGetId = "SELECT commonID from common group by commonID DESC LIMIT 1 ";
$resultGetId = $conn->query($sqlGetId);
$r=mysqli_fetch_array($resultGetId);
$id=$r['commonID'];
$sqlGetIllness = "INSERT INTO medicalrecords (CommonID,Medical_Condition) VALUES (".$id.",'".$value."')";
$resultGetIllness = $conn->query($sqlGetIllness);
}
、しかし何も起こりません:私はこれまでのところ私のコード、クリックされた任意のボタン上のINSERTクエリを実行しようとしています。私は既にデータベース接続を持っていますが、何が間違っているのでしょうか?ページをリフレッシュせずにPHPのようにすることは可能ですか?または、AJAXのようなクライアント側のlangを使用する必要がありますか?私はAJAX btwで働いたことがないことに注意してください。
新EDIT:
<script>
$("button").click(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
data: {
condition: $(this).val(), // < note use of 'this' here
},
success: function(result) {
alert('Condition Inserted!');
},
error: function(result) {
alert('error');
}
});
});
</script>
ソリューション:私はそれは、スクリプトを書いた後、私は
if (isset($_POST['condition'])) {
$value=$_POST['condition']; }
内のページの最上部に変数の値を取得して働いていただ $_SERVER['REQUEST_METHOD'] == 'POST')
そして今までどんなボタンもクリックされたときに値を挿入するようになりました。私の次のステップは、クリックされたボタンに背景色を与えることです
正解、GET/POSTリクエストでページを更新するか、クライアント側のAJAX呼び出しを呼び出す必要があります。期待どおり、ブラウザからPHP関数を呼び出すことはできません。このように、HTMLがブラウザにヒットしたら、PHPスクリプトに戻ることはありません。 – Scuzzy
ああ大丈夫ですね、私はおそらくアヤックスでやりたいことを研究していきますが、ボタンがたくさんあります。私はそれらがいつでも選択されたときに挿入してほしいです(1つ以上)、ありがとう解説 – Lalati
@Scuzzy新しいコード/スクリプトを使用して私の投稿を編集しました。見て回ってください。 – Lalati