2016-03-19 4 views
1

Ich habe eine Eingabe erstellt, mit der Benutzer Informationen über ihn/sie aktualisieren können. Input zeigt eingegebene Informationen sofort darüber hinaus (ich benutze AJAX). Ich made alles funktioniert, das Problem ist, dass, wenn ein Benutzer beschließt, persönliche Daten zu ändern, gibt einige Daten und schlägt "speichern" - es überschreiben oder aktualisieren die vorherigen Daten angezeigt, aber es setzt darunter.Echo-Anweisung überschreiben (aktualisieren), anstatt sie zusammen mit einer alten hinzuzufügen

Mein Punkt ist es, Benutzer zu ermöglichen, sofort Informationen über ihn zu ändern und sie sofort anzuzeigen und nicht neue Aufzeichnung zusammen mit alten anzuzeigen.

Hier ist meine index.php

<head> 
<script type="text/javascript"> 
$(function() { 
$(".submit_button").click(function() { 
var textcontent = $("#content").val(); 
var dataString = 'content='+ textcontent; 
if(textcontent=='') 
{ 
alert("Enter some text.."); 
$("#content").focus(); 
} 
else 
{ 
$("#flash").show(); 
$("#flash").fadeIn(400).html('<span class="load">Loading..</span>'); 
$.ajax({ 
type: "POST", 
url: "action.php", 
data: dataString, 
cache: true, 
success: function(html){ 
$("#show").after(html); 
document.getElementById('content').value=''; 
$("#flash").hide(); 
$("#content").focus(); 
} 
}); 
} 
return false; 
}); 
}); 
</script> 
</head> 
<body> 


<div class="container"> 

<div class="main"> 
<form method="post" name="form" action=""> 
<textarea style="width:500px; font-size:14px; height:60px; font-weight:bold; resize:none;" name="content" id="content" ></textarea><br /> 
<input type="submit" id="submit"value="Post" name="submit" class="submit_button"/> 
</form> 
</div> 
<div class="space"></div> 
<div id="flash" align="left" ></div> 
<div id="show" align="left"></div> 
</div> 
</body> 
</html> 

action.php

<?php 
include('db.php'); 
$check = mysqli_query($conn,"SELECT * FROM user order by age desc"); 
if(isset($_POST['content'])) 
{ 
$content=$_POST['content']; 
$ip=$_SERVER['REMOTE_ADDR']; 


$query = "UPDATE user SET rain = '$content' WHERE name = 'gala'"; 
mysqli_query($conn,$query) or die("error querying record"); 
$fetch= mysqli_query($conn,"SELECT rain FROM user WHERE name = 'gala' LIMIT 1"); 
$result = mysqli_fetch_assoc($fetch); 
} 
?> 

Und hier ist, wo mein Eingang geht - hier ist das Problem. Es fügt den neuen Rekord hinzu, während ich es erneuern möchte!

<div class="showbox"> <?php echo $result['rain']; ?> </div> 

Vielen Dank im Voraus!

+0

bitte über SQL-Injection kümmern und Benutzereingaben nicht direkt in SQL-Anweisungen (Weitere Informationen finden Sie unter http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) –

Antwort

0

In Ihrem Ajax-Erfolgsrückruf verwenden Sie die Funktion jQuerys .after(). Nach dem Anhängen des angegebenen HTML (Ihre Div-Klasse "Showbox") an das Div mit ID "Box". Jedes Mal, wenn Sie auf Speichern klicken, wird eine weitere div.showbox zu DOM hinzugefügt.

Verwenden jQuerys .html() statt ersetzen bereits vorhandene Inhalte

ersetzen
$("#show").after(html); 

mit

$("#show").html(html); 
Verwandte Themen