2012-06-26 3 views
1

Я работаю над простым стеновым сообщением и с трудом снимаю его. Я бы хотел, чтобы это сообщение, не перезагружая страницу (например, сообщение в facebook). На самом деле ничего не происходит, когда я попал в submit. Перезагрузка страницы, не появляется сообщение, и в базу данных ничего не добавляется. Я не могу понять, почему. Какие-либо предложения?простой настенный пост

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<HTML> 
<HEAD> 
<script type="text/javascript" src="js/jquery.js"> </script> 
</HEAD> 
<BODY> 
<form id="submit_wall"&gt; 
<label for="message_wall">Share your message on the Wall</label> 
<input type="text" id="message_wall" /> 
<button type="submit">Post to wall</button> 
</form> 
<ul id="wall"> 
</ul> 

<script type="text/javascript"> 
$(document).ready(function(){ 
$("form#submit_wall").submit(function() { 

var message_wall = $('#message_wall').attr('value'); 

$.ajax({ 
type: "POST", 
url: "insert.php", 
data:"message_wall="+ message_wall, 
success: function(){ 
$("ul#wall").prepend("<li style="display: none;">"+message_wall+"</li>"); 
$("ul#wall li:first").fadeIn(); 
} 
}); 
return false; 
}); 
}); 
</script> 
</body> 

insert.php только простой дб вход:

<?php 
if(isset($_POST['message_wall'])){ 
/* Connection to Database */ 
$link = mysql_connect($host, $un, $pw) or die("Couldn't make connection."); 
@mysql_select_db($db, $link) or die("Couldn't select database"); 

/* Remove HTML tag to prevent query injection */ 
$message = strip_tags($_POST['message_wall']); 

$sql = 'INSERT INTO wall ("message") VALUES("'.$message.'")'; 
mysql_query($sql); 
echo $message; 
} else { echo '0'; } 
?> 
+0

В чем проблема? что происходит, когда вы пытаетесь это сделать? пожалуйста, объясните настоящий результат и то, что вы связываете, чтобы достичь. – sabithpocker

+0

Я не вижу тематической связи с Facebook здесь. – CBroe

+0

просто хочет его опубликовать, не перезагружая страницу (например, сообщение в facebook) –

ответ

1

Прежде всего, это совсем не вопрос. Но я что-то я хотел бы отметить, что вы должны использовать

var message_wall = $('#message_wall').val(); 

Вместо

var message_wall = $('#message_wall').attr('value'); 

кроме этого, я не вижу ничего, что может быть не так. Пожалуйста, объясните себе немного лучше.

Вот часть «стены». Вы должны добавить Ajax вызов конечно

http://jsfiddle.net/myuX3/

EDIT:

$.ajax({ 
    type: "POST", 
    url: "insert.php", 
    data:{'message_wall':message_wall}, /* This is the line i've modified */ 
    success: function(){ 
     $("ul#wall").prepend("<li style="display: none;">"+message_wall+"</li>"); 
     $("ul#wall li:first").fadeIn(); 
    } 
}); 
+0

отличная точка с изменением. Спасибо. Прошу прощения за то, что не яснее. Я обновил его, так что это больше вопрос. –

+0

Добавил jsfiddle для вас, немного изменил html, чтобы все стало проще. Конечно, я не добавил часть ajax (bc, я думаю, что все в порядке) –

+0

отлично. Спасибо за помощь. –

0
<input type="text" id="message_wall" name='message_wall' /> // you can use "name" attribute and "serialize()" method 

ЯШ:

data: $(this).serialize(); 
success: function(data){ // pass the data to your success callback 
$("ul#wall").prepend("<li style='display: none;'>"+data+"</li>"); // correct the quotation marks 
1

index.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<HTML> 
<HEAD> 
<script type="text/javascript" src="js/jquery.js"></script> 
</HEAD> 
<BODY> 
<label for="message_wall">Share your message on the Wall</label> 
<form name="post" id="post" name="post"> 
<input type="text" id="message_wall" name="message_wall"/> 
<input type="submit" id="submitbtn" value="Post to wall"/> 
</form> 
<ul id="wall"> 
</ul> 

<script type="text/javascript"> 
$(document).ready(function(){ 

$('#submitbtn').click(function() { 

    var message_wall = $('#message_wall').val(); 
    $.ajax({ 
     type: "POST", 
     url: "insert.php", 
     data:"message_wall="+ message_wall, 
     success: function(){  
      var $d=$("<li>"+message_wall+"</li>").fadeIn(500,function() { 
       document.post.reset(); 
      }); 
      $("ul#wall").prepend($d); 
     } 
    }); 
    return false; 
}); 
}); 

</script> 

insert.php: (Имя, пароль и база данных верны. Я проверил их втройне)

<?php 
if(isset($_POST['message_wall'])){ 
/* Connection to Database */ 
$link = mysql_connect("localhost", "******", "******") or die("Couldn't make connection."); 
@mysql_select_db("*******", $link) or die("Couldn't select database"); 

/* Remove HTML tag to prevent query injection */ 
$message = strip_tags($_POST['message_wall']); 

$sql = 'INSERT INTO wall ("message") VALUES("'.$message.'")'; 
mysql_query($sql); 
echo $message; 
} else { echo 'fail'; } 
?>