あるボタンを押したときに動作するAjax通信を含んだwebページを作っています.このページに外部からリンクを介してアクセスした際,Ajax通信を実行した状態でページを表示する方法はありますでしょうか?
例えば,下記のように特定のボタン(#sample_btn)を押下したときにDBからデータを参照して表示するphpスクリプトを用意していた場合,このページに外部からリンクを介してアクセスしたときに,このDBからのデータを表示した状態で開くようなイメージです.
Javascript
1jQuery(document).ready(function($){ 2 $('#sample_btn').click(function(){ 3 var w_keyword = $('#kwd').val(); 4 func_show_candidates(w_keyword); 5 }); 6 7 function func_show_candidates(f_keyword){ 8 var data = {'w_keyword' : f_keyword}; 9 $.ajax({ 10 async:false, 11 type:"POST", 12 url:"./_ajax/show.php", 13 data:data, 14 }).done(function(f_ajax_result){ 15 $('#result_area').slideUp(function(){ 16 $('#result_area').html(f_ajax_result); 17 $('#result_area').slideDown(); 18 }); 19 }).fail(function(XMLHttpRequest, textStatus, errorThrown){ 20 alert("error"); 21 }); 22 } 23});
php
1<?php 2 if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { 3 $w_keyword = htmlspecialchars($_POST['w_keyword']); 4 5 $sql = "select * from sample_table where id = '".$w_keyword."' "; 6 7 $dsn = "mysql:host=XXXXXXX.ne.jp;dbname=XXXXXXXXX;charset=utf8"; 8 $d_base = new PDO($dsn, 'username', 'pass'); 9 10 $result = $d_base->prepare($sql); 11 $result -> execute(); 12 $cols = array(); 13 14 while($cols = $result -> fetch(PDO::FETCH_ASSOC)){ 15 $return_string .="<div class='row'>"; 16 $return_string .= "<div class='col'>" . $cols["col1"] . "</div>"; 17 $return_string .= "<div class='col'>" . $cols["col2"] . "</div>"; 18 $return_string .="</div>"; 19 } 20 } 21 echo $return_string; 22?>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。