ページをリロードせずにajaxとjqueryを使用してボタンを投稿する方法を学ぶのに苦労しています。具体的には、フォームはまだページを再読み込み中であり、変数は更新されていません。
これが私がつまずいたコードです。
Jquery/AJAXを試す前に使用したもの。ちょうどphp
// $_POST['selected_dir'] is set when you click on a folder or link within the explore(r).php
if (isset($_POST['selected_dir']))
{
// last selected folder/directory
$current_dir = $_POST['selected_dir'];
// current_dir is the folder we are looking inside of.
// we make it a $session so that if we click a different submit (RELOAD)
// within the page it will remember $current_dir;
$_SESSION['selected_dir'] = $current_dir; //
}
else // if $_post isint set but $_session is
if (isset($_SESSION['selected_dir']))
{
$current_dir = $_SESSION['selected_dir'];
}
else
{
// default folder/directory
$current_dir = "$root"; //'D:\Hosting\538\html';
}
<form action='explore.php' method='post'>
<input type='image'
src='$folder_icon'
alt='Submit'
name=''
value='submit'/>
<input type='hidden'
value='$f_path/$value'
name='selected_dir'/>
<input type='submit'
value='$value'
name='$value'
class='submit_into_link'/>
</form>
画像またはリンクをクリックするたびにページがリロードされる場合を除いて、これはうまく機能しました。私はついにjqueryとajaxを使用する必要があるという結論に達しましたが、これまでjavascriptを使用したことはありませんでした。私はチュートリアルを読んでいますが、これを機能させるためにドットを実際に接続することはできません
ヘッダーにこれがあります
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
私はこれを私のページの上部にあります
$.ajax
({
type: 'POST',
url: 'explore_be.php',
data: data, success:
success function(data, textStatus, jqXHR),
complete: function(),
dataType: dataType
});
上記のコードについていくつか質問があります。使い方がわかりません。このajaxコードをonclick関数内に配置する必要がありますか?jqueryで調べたいくつかの例はこのようなものを使用しているようです。
$(document).ready(function()
{
$(".flip").click(function() // this is a piece of code i got from w3schools.com
});
上記の.flipはクラスです。私は彼らが話しているときにボタンを使うのを見ました
<button>
しかし、特定の入力IDを持つフォーム内のボタンはどうでしょうか。または、フォーム入力onclick = "clicked()"に追加して、その関数にajaxを配置する必要がありますか?ajaxは$(document).ready(function())にもある必要がありますか?
データ型には何を入力する必要がありますか?
私は自分のphpコードをexplore_be.phpファイルに入れました。
explore_be.php
// $_POST['selected_dir'] is set when you click on a folder or link within the explore(r).php
if (isset($_POST['selected_dir']))
{
// last selected folder/directory
$current_dir = $_POST['selected_dir'];
// current_dir is the folder we are looking inside of.
// we make it a $session so that if we click a different submit (RELOAD)
// within the page it will remember $current_dir;
$_SESSION['selected_dir'] = $current_dir; //
}
else // if $_post isint set but $_session is
if (isset($_SESSION['selected_dir']))
{
$current_dir = $_SESSION['selected_dir'];
}
else
{
// default folder/directory
$current_dir = "$root"; //'D:\Hosting\538\html';
}
ページの背後にあるコードについてはこれですべてですか?
フォームを変更してアクションを実行しませんでしたが、onclickを追加しました。まだページをリロードしています。それを止めるには、フォーム入力に対して何をする必要がありますか?
私の新しいフォームは次のようになります
<form action='' method='post'>
<input type='image'
src='$folder_icon'
alt='Submit'
name=''
onclick='clickity()'
value='submit'/>
<input type='hidden'
value='$f_path/$value'
name='selected_dir'/>
<input type='submit'
value='$value'
name='$value'
onclick='clickity()'
class='submit_into_link'/>
</form>
どんな助けでも大歓迎です。