我有一個包含公司名稱地址郵編等多個AJAX請求,而無需刷新
行我有一個選擇:如果你不知道的全部細節,你可以輸入名稱,然後單擊搜索的形式。這將通過AJAX獲得所有具有相似名稱的公司列表,並將它們返回到模式窗口(不知道這是否是最好的方法)
列表中的每個公司都在其旁邊有一個按鈕,以便啓用用戶選擇該公司。
點擊所需公司後,表單關閉,我希望完成原始頁面上的地址詳細信息。
問題是被點擊後的模式按鈕刷新原來的頁面,因爲我使用method =「post」命令,這是刪除任何其他原始形式的數據。
有沒有辦法關閉模式和更新原始窗體而不刷新?
感謝
這是我原來的頁面:
<input type="text" id="text1"><button id="button"> Search </button>
<input type="text" id="Address1">
<input type="text" id="Address2">
<input type="text" id="Country">
<input type="text" id="PostCode">
<div class="modal fade" id="myModal" role="dialog">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Companies Found</h4>
</div>
<div class="modal-body">
<div id="result"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
<script>
$('#button').click(function() {
var val1 = $('#text1').val();
$.ajax({
type: 'POST',
url: 'api.php',
data: { text1: val1},
success: function(response) {
$("#myModal").modal('show');
$('#result').html(response);
}
});
});
</script>
這是頁面我通過AJAX調用:
$company_name= $_POST['text1'] ;
$api_key = 'xxx'; // Get your API key from here: https://developer.companieshouse.gov.uk
$api = new companiesHouseApi($api_key);
$response = $api->send('/search/companies', ['q' => $company_name]); // Process API request
echo'<style type="text/css">';
echo'.tg {border-collapse:collapse;border-spacing:0;}';
echo'.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;}';
echo'.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;}';
echo'.tg .tg-yw4l{vertical-align:top}';
echo'</style>';
echo'<table class="tg">';
foreach($response['items'] as $key){
echo' <form action="search.php" method="post">';
echo' <tr>';
echo' <th class="tg-031e">'.$key['title'] . "<br>".'</th>';
echo' <th class="tg-031e" rowspan="3"> <input type="submit" value="Submit"></th>';
echo' </tr>';
echo' <tr>';
echo' <td class="tg-yw4l">'.$key['description'] . "<br>".'</td>';
echo' </tr>';
echo' <tr>';
echo' <td class="tg-yw4l">'.$key['address_snippet'] . "<br>".'</td>';
echo' </tr>';
echo' </form>';
}
echo'</table>';
我仍然困惑對不起引用它們在你的JavaScript代碼。該模式顯示Ajax調用的結果。然後我需要關閉模式並填充原始字段而不刷新。 –
由於模態是在第一個頁面代碼中,所以您可以在點擊模式中的OK按鈕時運行javascript函數。代碼將採用模態字段的值,然後在主頁面中設置字段的值,最後關閉模態。 (這些字段需要唯一的ID以確保將數據放入正確的字段中)。這可以在不刷新頁面的情況下運行,因爲get或post的任何內容都需要刷新頁面。 – NoLiver92
謝謝你的工作我快到了。我設法填充字段但是由於某種原因,無論我按下哪個按鈕,只傳遞第一個按鈕的值,即使每個表單中的值都不相同? –