Я пытаюсь сделать приложение для iPhone для мобильного здравоохранения, используя HTML5, JavaScript, jqtouch и phonegap. Я делаю это как школьный проект, чтобы научиться создавать приложения для iPhone с использованием HTML5, jqtouch и phonegap.
Моя база данных имеет уникальный идентификатор, pName и запись. Я могу получить полный список pName из базы данных, способной заполнить страницу HTML5 в виде списка. Я не могу получить pName и запись из базы данных по событию click, сделанному в списке pName. Мне просто нужно получить pName и запись, связанную с pName, показанным в списке.
refreshEntries () используется для извлечения всех данных из базы данных и для заполнения всего списка pName на панели PatientList. Он также заботится о событии onclick в списке pName.
detailEntryById (id) выбирает данные, связанные с выбранным pName, и заполняет их на панели пациента.
index.html выглядит так
<div id="patientList">
<div class="toolbar">
<h1>patientList</h1>
<a class="button slideup" href="#newEntry">+</a>
</div>
<ul class="edgetoedge">
<li id="entryTemplate" class="arrow" style="display:none">
<a href="#patient"><span class="label">Label</a></span>
</li>
</ul>
</div>
<div id="patient">
<div class="toolbar">
<a class="button back" href="#">Back</a>
<h1 id ="patientHeading" style="display:none">
<span class="label1">Label</span>
</h1>
<a class="button edit" href="#editPatientRecord">Edit</a>
</div>
<br/>
<form method="post">
<img class="displayed" src="kilo.png" alt="patient photo" width="70" height="70" />
<ul class="rounded">
<li><input type="text" placeholder="patient record" name="record" id="record"
autocapitalize="off" autocorrect="off" autocomplete="off" /></li>
</ul>
<ul class="rounded">
<li><input type="submit" class="submit" name="action"
value="Save Entry" /></li>
</ul>
</form>
</div>
код iPhone.js
function refreshEntries() {
$('#patientList ul li:gt(0)').remove();
db.transaction(
function(transaction) {
transaction.executeSql(
'SELECT * FROM patientRecord1;',[],
function (transaction, result) {
for (var i=0; i < result.rows.length; i++) {
var row = result.rows.item(i);
var newEntryRow = $('#entryTemplate').clone();
newEntryRow.removeAttr('id');
newEntryRow.removeAttr('style');
newEntryRow.data('entryId', row.id);
newEntryRow.appendTo('#patientList ul');
newEntryRow.find('.label').text(row.pName);
newEntryRow.find('.label').click(function(){
var clickedEntry = $(this).parent();
var clickedEntryId = clickedEntry.data('entryId');
detailEntryById(clickedEntryId);
}); // end of click function
} // end of for loop
}, // end of function (transaction,result)
errorHandler
); // end of transaction.executeSql
} // end of function transaction
); // end of db.transaction
} // end of function refreshEntries
function detailEntryById(id) {
db.transaction(
function(transaction) {
transaction.executeSql('SELECT * FROM patientRecord1 WHERE id=?;',
[id],
function(transaction, result){
for (var i=0; i < result.rows.length; i++){
var row = result.rows.item[i];
var patientClicked = $('#patientHeading').clone();
patientClicked.removeAttr('id');
patientClicked.removeAttr('style');
patientClicked.appendTo('#patient h1');
patientClicked.find('.label1').text(row.pName);
} // end of for loop
}, // end of function(transaction , result)
errorHandler); // end of executeSql
} // end of function transaction
); // end of db.transaction
}
Пожалуйста, скажите мне, где я делаю неправильно.