我真的很新,jquery和ajax,我正在努力如何去做這件事。 我正在使用jquery mobile 1.4.1,我試圖顯示已經保存到數據庫的表單數據,而無需從彈出窗口中刷新頁面。jquery ajax顯示數據庫數據而不刷新
我有一個頁面,我點擊一個按鈕打開一個彈出窗口。用戶可以在彈出框中輸入信息,當點擊提交時,表單數據通過ajax傳遞給我的php腳本來更新數據庫;這工作。
這是彈出的形式:
$(document).ready(function()
{
$('#submit').click(function()
{
$.post("submitNewCustId.php", $("#addId").serialize(), function(response)
{
$('#success').html(response);
});
return false;
});
});
</script>
<div data-role='popup' id='addCustId' data-theme='a' data-overlay-theme='a' data-dismissible='false' style='min-width:300px;'>
<div data-role='header' data-theme='a'>
<h1>Add Identification Type</h1>
</div>
<div data-role='main' class='ui-content'>
<form id='addId' action ='newcustomerid.php' method='post' >
<input type="hidden" name="cust_id" value='<?php echo $custid; ?>'>
<input type="hidden" name="sess_id" value='<?php echo $sid; ?>' />
<input type="hidden" name="submitted" value="true"/>
<div class="ui-field-contain">
<label for="phoneType">Type</label>
<select name="idType" id="idType" data-native-menu="false">
<?php echo $idInnerOptions; ?>
</select>
</div>
<div class="ui-field-contain">
<label for="phoneNumber">Description</label>
<input type="text" name="idDesc" id="idDesc" value="">
</div>
<div class='ui-grid-a'>
<div class='ui-block-a'><input type='submit' id="submit" value='Update' class='ui-btn ui-btn-inline' data-transition='pop' /></div>
<div class='ui-block-b'><a href='#' class='ui-btn' data-rel='back' data-transition='pop'>Cancel</a></div>
<div id="success" style="color:black;"></div>
</div>
</form>
</div>
這是PHP(我知道它很基本的,我會在驗證等工作後):
$idType = $_POST['idType'];
$idDesc = $_POST['idDesc'];
$custId = $_POST['cust_id'];
$sessId = $_POST['sess_id'];
$sql = "call theFunction ('". $idType ."','". $custId ."','". $idDesc ."','". $sessId ."')";
$insert = sasql_query($connect, "$sql");
然而,在我的數據庫更新後,我希望關閉彈出窗口,並使用已保存在數據庫中的新數據更新初始頁面。 下面是需要更新的代碼:
while($row = sasql_fetch_array($idresult))
{
echo "
<li>
<div class='container_12'>
<div class='grid_15'>
<div class='ui-grid-a'>
<div class='ui-block-a'><div id='idType' class='ui-bar ui-bar-a' style='height:15px; background-color:transparent; border: none; color: #000000; font-weight: normal;'>" . $row['description'] . "</div></div>
<div class='ui-block-b'><div id='idNo' class='ui-bar ui-bar-a' style='height:15px; background-color:transparent; border: none; color: #000000; font-weight: normal;'>" . $row['number'] . "</div>
</div>
</div>
</div>
<div class='grid_120'>
<a href='#editCustId' data-rel='popup' data-position-to='window' data-transition='pop' style='padding:0px; margin:0px; border:0px; float: right;' class='ui-btn ui-btn-inline ui-icon-edit ui-btn-icon-notext'>Edit</a>
</div>
</div>
</li>
";
} //end while
echo "</ul>";
我不知道如何做到這一點 - 我的問題是1,我怎麼能關閉彈出窗口按下時提交和2.我怎麼可以更新PHP while循環顯示沒有頁面刷新的新行? 我希望這一切都有道理,謝謝你的幫助。
首先,它看起來像你有不同的網址在表單動作和ajax post'newcustomerid.php'和'submitNewCustId.php'。其次,你在響應變量中收到更新後的數據,但「成功」div在哪裏?第三,你可以在收到響應之後關閉popup div,比如'$('#addCustId')。hide()' –