Мне было интересно, как передать выбранный идентификатор на модал.
ниже у меня есть код, который находится внутри таблицы:
<a type='button' id='seemore' data-toggle='modal' idNum='".$row['marriage_id']."'
data-target='#see_more' class='glyphicon glyphicon-eye-open'></a>
$row['marriage_id']
это из моего первого запроса.
Я надеялся, что смогу использовать значение внутри idNum($row['marriage_id'])
так что я мог бы использовать его во втором запросе.
Я хотел бы использовать его в этом запросе.
SELECT * FROM marriage WHERE marriage_id = idNum
и результат будет выбран id
из первого запроса, где это будут параметры моего предложения where во втором запросе.
В этом примере используется асинхронная загрузка данных. Пользователь нажимает кнопку, и на сервер отправляется запрос, и когда сервер отвечает, выполняется следующий бит вашей программы. В вашем случае открытие модального режима с данными о браке. Преимущество этой системы заключается в том, что пользователь может продолжать использовать вашу веб-страницу, пока запрос обрабатывается.
Обновите ссылку в вашем HTML с помощью события onclick.
<a type='button' id='seemore' data-toggle='modal' idNum='".$row['marriage_id']."'
data-target='#see_more' onclick='sendRequest(this.idNum)'
class='glyphicon glyphicon-eye-open'> </a>
Добавьте блок скриптов на свою страницу с помощью следующей функции.
JavaScript:
function sendAjax(id, e) {
var xmlhttp;
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 ) {
if(xmlhttp.status == 200){
//request is complete and loaded
//open the modal dialog or update it.
}
else if(xmlhttp.status == 400) {
alert('There was an error 400')
}
else {
alert('something else other than 200 was returned')
}
}
}
xmlhttp.open("POST", "file.php", true); //true means asynchronously.
xmlhttp.send("idnum="+id);
}
id
отправляется на сервер в виде поста вар. замещать file.php
с собственным файлом php. В этом php-файле вы выполняете запрос и echo
ответ как XML или же JSON.
//open the modal dialog or update it.
: Под этой линией вы можете получить данные. Эта строка находится в обработчике событий, который проверяет, загружены ли данные. Так как сервер ответил 200
в этом предложении if мы можем предположить, что есть ответ. Если это JSON использование JSON.parse(this.responseText)
, Если XML использование this.responseXML
,
Других решений пока нет …