質問全体を必ずお読みください。ここには 2 つの質問があります。
また、注意してください:私は ajax が初めてで、自分が何をしているのかわかりません。Jquerys Ajax のドキュメントを読みましたが、何をすべきかわかりません。
質問1
私は最近、これを行う方法について質問しましたが、Ajax に関する核となる質問には誰も答えませんでした。それらはすべて HTML に重点を置いていたので、今回はもっと前に進みます。
次の要素に対して次の ajax 関数があります。
<label class="checkbox">
<input type="checkbox" name="aisis_options[package_Aisis-Related-Posts-Package-master]"
value="package_Aisis-Related-Posts-Package-master" checked="">
Aisis-Related-Posts-Package-master <a href="#">(Disable)</a>
</label>
(function($){
$(document).ready(function(){
$('a').click(function(){
var el = $(this).prev('input[type="checkbox"]');
if(el.is(':checked')){
el.prop('checked',false);
}
$.ajax({
url : /var/www/wordpress/wp-content/themes/Aisis-Framework/CoreTheme/AdminPanel/Template/Helper/UncheckPackageThemeHelper.php,
type : 'GET',
data : { 'element_name' : el.prop('name') }
});
});
});
})(jQuery);
持っていると思うかどうかはわかりませんがhttp://localhost/path/to/class
、次のように言っておかしくなります:
Uncaught SyntaxError: Invalid flags supplied to RegExp constructor 'www' admin.php?page=aisis-core-upload:239
では、これを設定する適切な方法は何ですか?
質問2
上記の Ajax は、それらがフォーム送信であることを前提としていますが、チェックボックスの横にある「無効化」リンクを見ると、フォーム送信要素ではありません。では、フォームを送信せずに要素名をクラスに渡し、クラスに名前をエコーアウトさせるにはどうすればよいですか?
これは私のクラスがどのように見えるかです:
class CoreTheme_AdminPanel_Template_Helper_UncheckPackageThemeHelper{
private $_element_name = null;
public function __construct(){
if(isset($_GET['element_name'])){
$this->_element_name = $_GET['element_name'];
echo $this->_element_name;
}
}
}
要素名をエコーしていることがわかります。今は GET を使用しており、Ajax では GET 要求を示していますが、そうではありません。私はいかなる種類のフォームも送信していません。フォームを送信するつもりはありません。リンクをクリックし、チェックボックスをオフにして、その要素の名前をクラスに渡し、名前をエコーアウトしたいだけです。
それ、どうやったら出来るの?