我的桌子上有四个记录区域
我正在使用PDO方法用ajax更新php中的记录,当我调用insert查询时它工作正常但是当我更新我的记录时它只更新了三个起始字段,在地址字段中他们插入 undefined 文字值,我在哪里做错了?
我前端的截图 https://drive.google.com/open?id=0B-PfnAjLGR2xendqM2NsaUVuLW8
defaultdict(<class 'dict'>, {
'AL2G22360.t1': {
'Sp': {
'keys': 'AL2G22360.t1_Sp',
'length': '663'},
'My': {
'keys': 'AL2G22360.t1_My',
'length': '389'}},
'AL2G22220.t1': {
'My': {
'keys': 'AL2G22220.t1_My',
'length': '865'},
'Sp': {
'keys': 'AL2G22220.t1_Sp',
'length': '553'}, .....}})
<div class="modal-body">
<input type="hidden" id="<?php echo $row['id']; ?>" value="<?php echo $row['id']; ?>">
<div class="form-group">
<label for="nm">Name</label>
<input type="text" class="form-control" id="nm-<?php echo $row['id']; ?>" value= "<?php echo $row['name']; ?>">
</div>
<div class="form-group">
<label for="em">Email</label>
<input type="Email" class="form-control" id="em-<?php echo $row['id']; ?>" value= "<?php echo $row['email']; ?>">
</div>
<div class="form-group">
<label for="ph">Phone</label>
<input type="number" class="form-control" id="ph-<?php echo $row['id']; ?>" value= "<?php echo $row['phone']; ?>">
</div>
<div class="form-group">
<label for="ad">Address</label>
<textarea type="text" class="form-control" id="ph-<?php echo $row['id']; ?>" > <?php echo $row['address'];?> </textarea>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="submit" onclick="updateData(<?php echo $row['id']; ?>)" class="btn btn-primary">Update</button>
</div>
</form>
<script type="text/javascript">
function updateData(str){
var id = str;
var name = $('#nm-'+str).val();
var email = $('#em-'+str).val();
var phone = $('#ph-'+str).val();
var address = $('#ad-'+str).val();
$.ajax({
type:"POST",
url: "server.php?p=edit" ,
data : "nm="+name+"&em="+email+"&ph="+phone+"&ad="+address+"&id="+id,
success :function(data){
viewData();
}
});
}
</script>
答案 0 :(得分:0)
这里有一个简单的拼写错误:
<label for="ad">Address</label>
<!-- here: -->
<textarea type="text" class="form-control" id="ph-<?php echo $row['id']; ?>" > <?php echo $row['address'];?>
</textarea>
应该是
... id="ad-...
因为你在js中提到它是这样的:
var address = $('#ad-'+str).val();
由于没有ID为'ad - '+ x的html元素,address
将为undefined
- &gt; $_POST['ad']
将包含字符串'undefined'。