2016-08-04 65 views
1
<table border="0" cellpadding="10" cellspacing="1" id="edit"> 
     <tr> 
     <div class="input-label"> 
     <td>Name:</td> 
     </div> 
     <td><div class="input-tbox"><input type="text" name="Myname" id="names" contenteditable="true" onblur="saveToDatabse(this,'name','<?php echo $id;?>')" onclick="showEdit(this);" value="<?php echo $name; ?>"/></div></td> 
     </tr> 

     <tr> 
     <td>Username:</td> 
     <td><div class="input-tbox"><input type="text" name="myuser" id="user" contenteditable="true" onblur="saveToDatabse(this,'userName','<?php echo $id;?>')" onclick="showEdit(this);" value="<?php echo $username; ?>" /></div></td> 
     </tr> 

     <tr> 
     <td>Email:</td> 
     <td><div class="input-tbox"><input type="text" name="mail" id="email" contenteditable="true" onblur="saveToDatabse(this,'email','<?php echo $id;?>')" onclick="showEdit(this);" value="<?php echo $usermail; ?>" /></div></td> 
     </tr> 
</table> 

我在onblur事件saveToDatabase()功能。 這是我的職責,在jQuery中用什麼來代替innerHTML來獲得價值?

function saveToDatabse(editableObj,column,id){ 
    $(editableObj).css("background","#FFF url('../images/loaderIcon.gif')no-repeat right"); 
    $.ajax({ 
     url:"update.php", 
     type:"POST", 
     data:'column='+column+'&editval='+editableObj.innerHTML+'&id='+id, 
     cache: false,   
     sucsess:function(data){ 
      $(editableObj).css("background","#FDFDFD"); 
     } 
    }); 
} 

當我更新它設置爲空值。我認爲是因爲使用了innerHTML。我知道innerHTML不適用於jquery。那麼,我可以在那裏用什麼來獲取saveToDatabse()函數的這個對象的值呢?

+1

值這是什麼都用PHP做的價值? – Epodax

+1

'.html()'函數。請參閱doc http://api.jquery.com/html/以獲得答案。但是你試圖通過'innerHTML'來獲得輸入值,你應該使用'.value'來代替。 –

+1

爲什麼你在'input'上有'contenteditable =「true」'?刪除該屬性,並在您的JS代碼中使用'value'屬性。 –

回答

1
$.ajax({ 
     url:"update.php", 
     type:"POST", 
     data:({'column':column,'editval':editableObj.value,'id':id}), 
     cache: false,   
     sucsess:function(data){ 
      $(editableObj).css("background","#FDFDFD"); 
     }, 
     error:function(data){ 
      alert(data); /*this will help to to find the error*/ 
     } 
    }); 
1
<table border="0" cellpadding="10" cellspacing="1" id="edit"> 
     <tr> 
     <div class="input-label"> 
     <td>Name:</td> 
     </div> 
     <td><div class="input-tbox"><input type="text" name="Myname" id="names" contenteditable="true" onblur="saveToDatabse(this,'name','<?php echo $id;?>')" onclick="showEdit(this);" value="<?php echo $name; ?>"/></div></td> 
     </tr> 

     <tr> 
     <td>Username:</td> 
     <td><div class="input-tbox"><input type="text" name="myuser" id="user" contenteditable="true" onblur="saveToDatabse(this,'userName','<?php echo $id;?>')" onclick="showEdit(this);" value="<?php echo $username; ?>" /></div></td> 
     </tr> 

     <tr> 
     <td>Email:</td> 
     <td><div class="input-tbox"><input type="text" name="mail" id="email" contenteditable="true" onblur="saveToDatabse(this,'email','<?php echo $id;?>')" onclick="showEdit(this);" value="<?php echo $usermail; ?>" /></div></td> 
     </tr> 
</table> 

jQuery代碼 如果你想從文本框,你應該使用,而不是innerHTML的

function saveToDatabse(editableObj,column,id){ 
    $(editableObj).css("background","#FFF url('../images/loaderIcon.gif')no-repeat right"); 
    $.ajax({ 
     url:"update.php", 
     type:"POST", 
     data:'column='+column+'&editval='+editableObj.value+'&id='+id, 
     cache: false,   
     sucsess:function(data){ 
      $(editableObj).css("background","#FDFDFD"); 
     } 
    }); 
} 
相關問題