テキストボックスの値を取得してphp変数に割り当てたいのですが、フォームを使用しません。ボタンのクリックで一部のコンテンツを非表示にし、同じクリックで検索機能が必要な検索機能を実行していますが、フォームを使用すると、別のページにリダイレクトされるか、不要なページが再度リロードされます。
だから私はこれのための別の方法が欲しい。
テキストボックスの値を取得してphp変数に割り当てたいのですが、フォームを使用しません。ボタンのクリックで一部のコンテンツを非表示にし、同じクリックで検索機能が必要な検索機能を実行していますが、フォームを使用すると、別のページにリダイレクトされるか、不要なページが再度リロードされます。
だから私はこれのための別の方法が欲しい。
Ajax は、ギリシャ神話のトロイ戦争の英雄であるだけでなく、必要な技術であり、友人でもあります。
jQuery を使用することをお勧めします [Barry が私よりも早く投稿したように、私は神話の参照が正しいことを確認したかったので...]
MaxArt が指摘しているように、実際には「Ajax」という名前の 2 人のギリシャの英雄がいて、どちらもトロイ戦争に参加しました (そして両方ともホーマーのイリアスにも参加しました)。
次のように jQuery を使用できます。
<!-- Link jQuery (replace src with the location where you have jQuery) -->
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js">
</script>
<!-- Try something like this [having jQuery linked]: -->
<script type="text/javascript">
function doButtonStuff()
{
//Use jQuery to "hide some contents"
$('#stufftohideId').hide(); //stufftohideId identifies what to hide
//set the url of the web page that will take this info on your server
var ulr = "http://localhost";
//The following part will fail if you cannot connect to the server
$.post(
url,
{text: $('#textboxId').val()}, //textboxId identifies the textbox
function (data)
{
//data is what the server responded
//do something with data, for instance:
alert(data);
}
);
}
</script>
<input type="text" id="textboxId"></input>
<input type="button" onclick="doButtonStuff();" value="Click Me"></input>
<div id="stufftohideId">
<p>
This is an example of something to hide.
</p>
</div>
次のように、渡した URL を持つ Web ページのサーバー側にアクセスします。
<?php $text = $_POST['text']; ?>
リクエスト メソッドを確認してください。次に例を示します。
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$text = $_POST['text'];
//do something with $text, for instance:
echo $text;
}
?>
また、入力を検証してサニタイズします。セッションが必要な場合は、それも確認してください。サーバーが返すものは何でも、クライアント側で受信されます。
ページのリロードが必要ない場合は、たとえば jQuery を使用した AJAX をご覧ください: http://api.jquery.com/jQuery.ajax/
PHP の ajax 実装を使用して、ページのリロードまたはリダイレクトを防ぐことができます。CakePHP、tppAjaxをチェックできます...
$(document).ready(function() {
$("#textboxID").change(function(){
var text = $(this).val();
});
});
jQuery を使用すると、ドキュメント準備完了関数内で .change メソッドを使用して、テキスト フィールドの値を取得できます。jquery経由で値を取得したら、いくつかのajaxを実行し、javascript変数をphpページに送信して、$ _GETメソッドを使用して値を取得できます。この時点で、phpに変数があり、必要なことは何でもできますそれと。