我正在尝试让用户在结帐过程中修改电话号码。该数字从数据库返回,并作为php会话变量存储在有效的登录名上。
此处将向用户显示该值以及一个供用户更新该值的按钮(我省略了所有的Bootstrap):
<div id="telNo"><p><?php echo($contactphone);?></p></div>
<div id="telButton"><button type="submit" id="telButton" class='btn btn-default btn-sm' onClick="modTel()">Modify</button></div>
jQuery函数modTel()提供一个文本框(默认值为现有值)和一个供用户更新值的按钮:
function modTel() {
$( "#telForm" ).submit(function( event ) {
event.preventDefault();
$("#telNo").html('<input type="text" name="telno" id="telno" value="<?php echo($contactphone);?>" size="12" maxlength="15" class="form-control">');
$("#telButton").html('<button type="submit" id="telButton" class="btn btn-primary btn-sm" onClick="updNo()">Update</button>');
});
}
在单击按钮以返回新值时,updNo函数总是返回php变量中保存的原始值
function updNo() {
$( "#telForm" ).submit(function( event ) {
event.preventDefault();
var newtel = $("#telno").val();
alert(newtel); // submit via ajax here to update the session variable
});
}
我得出的结论是,该方法可能存在缺陷,因为浏览器似乎无法从第一个函数创建的文本框中获取值,但对实现相同结果的方向有所了解。 jQuery不是我的强项。