2016-08-04 4 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> 

Ich habe saveToDatabase() Funktion bei onblur Ereignis. Dies ist meine Funktion,Was anstelle von innerHTML in jQuery verwenden, um Wert zu erhalten?

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"); 
     } 
    }); 
} 

, wenn ich die Aktualisierung es einen leeren Wert gesetzt. Ich denke, weil die Verwendung von innerHTML. Ich weiß, innerHTML ist nicht für jquery. Also was kann ich dort verwenden, um den Wert von diesem Objekt saveToDatabse() Funktion zu bekommen?

+1

Was hat das mit PHP zu tun? – Epodax

+1

'.html()' Funktion. Siehe http://api.jquery.com/html/ zu Ihrer Antwort. Aber Sie versuchen, den Wert der Eingabe zu erhalten, obwohl "innerHTML", stattdessen sollten Sie '.value' verwenden. –

+1

Warum haben Sie 'contenteditable =" true "' auf einer 'Eingabe'? Entfernen Sie dieses Attribut und verwenden Sie einfach die Eigenschaft 'value' in Ihrem JS-Code. –

Antwort

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 Code Wenn Sie den Wert von Textbox möchten Sie Wert statt innerHTML-

verwenden sollten
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"); 
     } 
    }); 
}