私はDIVを持っており、次のことを行います。
- ユーザーがクリックしたときにdiv(display:none)を非表示にします(この部分は解決しました)
- MySQLデータベースを更新します(これは私の質問に関係するものです)
私はこのスクリプトをSOで見つけたので、ドキュメントの先頭に座っています。
<script>
function myScript(imageID) {
url="updateDatabase.php?imageID=" + imageID;
objX=new XMLHttpRequest();
objX.open("GET",url,false);
objX.send(null);
response=objX.responseText;
document.getElementById('image' + imageID).innerHTML=response;
}
</script>
そして、これがページ内のDIVのコードであり、コードの他の場所で設定されたimageIDを使用して、ロードしてスクリプトに渡す画像を決定します。
echo "
<div id=\"image".$imageID."\">
<img
src=\"images/".$imageID.".png\"
onclick=\"myScript(".$imageID.");
document.getElementById('image".$imageID."').style.display = 'none'
\">
</div>";
そして、これがスクリプトが参照するupdateDatabase.phpページです。これは、同じサイトの他の場所で正常に使用されている、コード内の他の場所で定義された関数を参照するPHPの1行です。一連のMySQLクエリ/挿入/更新を実行します。
updateImage($_GET['imageID']);
クリックするとDIVを非表示にすることに成功しましたが、同じ手順でデータベースを更新するようにDIVを取得できないようです。これは、私には欠けている部分です。
必要なimageIDを正常に渡していることはわかっています。これは、必要に応じて、このupdateDatabase.phpページに正しく出力できるためです。ただし、データベースアクティビティを発生させることはできません。
私が収集したものから、これにはJQueryやAJAXの組み合わせが必要です。私はPHP/MySQLの基本的な知識を持っていますが、これは私にとってまったく新しい領域であるため、説明をいただければ幸いです。また、私はSOに不慣れであり、重要な情報を省略したり、ポストコンベンションを無視したりした場合は、事前に謝罪します。その場合はお知らせください。