たとえば、私はユーザーで、コメントを投稿し、それを送信してデータベースに保存したいと考えています。管理者の他のページが更新され、管理者のページを更新しなくても、挿入したデータが自動的に表示されます。助けてください..どんなコードでも役に立ちます。ありがとう。サーバー側の言語にphpを使用しています。どの言語でも、javascript または ajax を支援できます。
3 に答える
Javascript (jQuery):
$.post('path_to_your_php_script.php', function(data) {
$('the_dom_element_you_want_to_show_the_comment_in').html(data);
});
path_to_your_php_script.php のどこかに:
// some code to save the data
echo '<div>New comment</div>';
exit;
詳細については、jQuery のpostおよびajaxメソッドを参照してください。jQuery がなくても同じことができますが、車輪の再発明はすべきではありません。
yourphpfile.php
すべてのデータベース操作を実行する必要があるphpファイルです(あなたの場合はデータベースへの挿入)。したがって、基本的には、ページを更新せずに、最近挿入されたデータを Web ページに表示したいのですが、それには Ajax が必要です。
で挿入操作を行いyourphpfile.php
、挿入操作が成功した場合は、結果 (DB に挿入されたデータ) を返すだけですecho $output;exit;
。 where $output = 'recently inserted data'; それがphp側で行う必要があることです。
あなたのyourphpfile.php
:
<?php
//your database insert operation
echo $output;// $output should have the inserted data
exit;
?>
今ajax関数で:
jquery.ajaxを使用できます
$.ajax({
type: "GET",
url: "yourphpfile.php",
success: function(response){
if(response != '') {
//data that I inserted displays without refreshing the page of the admin
$('yourDivContent').html(response);
} else {
// response error
}
}
});
応答変数では、yourphpfile.php
. それが $output です。次に、ajax 関数内で応答変数を使用し、それを使用して HTML に挿入できます。
フォームがあり、データをバックエンドに送信するために Ajax を使用できるとします。ajax 呼び出しは次のようになります。
var id = $(this).attr('id');
$.ajax({
type:"POST",
url:"ajax.php",
data:{id:id},
success:function(data){
// do something if insertion into database has succeeded
}
});
...そしてphpでは次のように書きます:
// Connecting to Database
mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die ('Can not connect to MySQL database');
// Selecting Database
mysql_select_db(DBNAME) or die ('Cant select Database');
$action = mysql_real_escape_string($_POST['action']);
if ($action == "insert")
{
foreach ($recordArray as $key=>$value) {
$query = "INSERT INTO `TABLE`
SET name = `".$_POST['name']."`
SET age = `".$_POST['age']."`
.
.
mysql_query($query) or die('Error, insert query failed');
}