2011-12-22 3 views
0

私がやっていることは、「お気に入り」のシステムを作成しようとしていることです。ユーザーがボタンをクリックし、ページ上のコードがMySQLデータベースに値を送信するようにします。私が唯一行っていることが提出と価値であるならば、これはページにリロードする必要がありますか?私は、ボタンのクリックでデータベースから情報を引き出すのではない。ありがとうございました:)PHPリロードしないMySQLデータベースに値を送信する(返品なし)

答えて

3

Ajaxとブラウザ間の互換性の複雑さを避けるための素晴らしい方法は、Jqueryを使用することです!あなたの非リロードページで

、あなたは、この置くことができます:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script> 
<script text="text/javascript"> 
$(function() { 
$('#button_id').click(function() { //in place of "button_id" you need to put your button's id 
    submitInformation("some information you want to send"); 
}); 
}); 
function submitInformation(data1) 
{ 
$.post(
    "handle.php", //this is the name and location of your php page 
    { 
     "input_var_one":data1, 
    } 
); 
} 
</script> 

とあなたのハンドラPHPページ内を(この場合は "handle.php" と呼ばれる)

<?php 
$inData1 = $_POST['input_var_one']; 


//after your mysql_connect and mysql_select_db 
$query = "INSERT INTO `yourtablename` VALUES ('var1 whatever you want', '$inData1')"; 
mysql_query($query); 

?> 

jQueryがハンドルあなたのためのAjaxリクエスト!

+0

一般的に、私はjqueryを使用するように教える人はとても良いアイデアではないと考えています。jqueryを使用する多くの人にとっては" javascriptを学ぶ必要はありません "そのシェルについてのカタツムリのような本当の問題(異常の場合)が何であるかについて多くを知っている多くの人に。 – khael

+0

申し訳ありませんが、私はすばやく対応してくれませんでした。ありがとうございました!非常に役立ちます。 –

2

AJAXを使用していない場合は、mysqlデータベーステーブルにアクセスするために情報をサーバに送信し、phpで処理し、必ずページを再読み込みする必要があります。

使用できる

<script type="text/javascript"> 
var xhr = XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); 

function onthatbuttonclick(something) 
{ 
    window.xhr.open('GET', "somephp.php?click="+something, false); 
    window.xhr.send(null); 
    alert(window.xhr.responseText); 
} 

var somevar = "user 01"; 
</script> 

<input type="button" onclick="onthatbuttonclick(somevar);" /> 

とPHPで:

<?php 
    // some query required code 

    // and yes... i does require some safety measures: 
    $val = mysql_real_escape_string($_GET['click']); 
    mysql_query("INSERT INTO `tabel` (`click`) VALUES ('".$val."')"); 
    echo 'you cliked a button.'; 
?> 

あなたは今、テキストと警告ボックスが表示されます。 "あなたはボタンをクリックしました。"。

+0

ありがとう、私はajaxを学び始めます。 –

+0

yikes!私はこれが裸の必需品であることを知っていますが、PHPではいつもあなたのデータベース入力を消毒する必要があります。 – superUntitled

+0

このインスタンスではAjaxがあなたに最も役立つでしょうが、ページロードなしでこれを行う唯一の方法ではありません。小規模なプロジェクトの場合は、ページ内の非表示のiframeへの投稿を行う方が簡単です。 iframeに名前を付けて、そのフレームに送信するフォームを設定します(

関連する問題