0

我有一个表单,我将各种字段(姓名、电子邮件、评论)保存在 mysql 数据库中,数据已写入,但我想在不重新加载页面的情况下显示数据,按下提交按钮并查看新评论。.

HTML:

<form action="" method="post" id="form">
    <fieldset>
        <input type="hidden" name="noticia_id" value="<?php echo $id;  ?>"><br>
        <p><label>NOMBRE *</label>
        <input type="text" id="nombre" name="usuario"></p>
        <p><label for="email">EMAIL (No se publicará) *</label>
        <input type="text" id="email" name="email"></p>
        <p><label for="comment">COMENTARIO</label>
        <textarea name="comentario" id="comment" cols="100%" rows="10" tabindex="4"></textarea></p>
        <p><input type="submit" name="submit" id="submit" tabindex="5" value="Enviar " /></p>

    </fieldset>
</form>

PHP:

<?php
if ($_POST) {
    //conectamos a la base  
    $connect=mysql_connect("localhost","root","");  
    //Seleccionamos la base  
    mysql_select_db("mostra",$connect);
    $id=$_POST['noticia_id'];
    $nick=$_POST['usuario']; 
    $email=$_POST['email']; 
    $comentario=$_POST['comentario']; 
    $query = "INSERT INTO comentarios (usuario,email,comentario,noticia_id, fecha) VALUES('$nick','$email','$comentario','$id', NOW())";
    mysql_query($query) or die(mysql_error());

    $query = "UPDATE  noticias SET num_comentarios= num_comentarios+1 where id_noticia='".$id."'";
    mysql_query($query) or die(mysql_error());
}

?>

如何创建 jquery 函数或其他方法来插入此数据而无需重新加载页面?

我看过教程,但我无能为力!

4

3 回答 3

1

在您的 javascript 中,使用 Jquery 进行 AJAX 调用,如下所示:

假设您有一个名为 url.php 的 php 页面正在执行 SQL 插入,并且您正在传递一个名为 par1 的参数,请执行以下操作:

$.ajax({
    url: "ver.php?par1=" + parValue,
    type: 'POST',
    success: function(result) {
        // use the result as you wish in your html here
}});

然后在 ver.php 中执行:

$par1 = $_POST['par1'];

好的,试试这段代码:

HTML 代码:

<fieldset>
    <input type="hidden" name="noticia_id" value="<?php echo $id;  ?>"><br>
    <p><label>NOMBRE *</label>
    <input type="text" id="nombre" name="usuario"></p>
    <p><label for="email">EMAIL (No se publicará) *</label>
    <input type="text" id="email" name="email"></p>
    <p><label for="comment">COMENTARIO</label>
    <textarea name="comentario" id="comment" cols="100%" rows="10" tabindex="4"></textarea></p>
    <p><input type="button" name="submit" id="submit" onclick="send_data()" tabindex="5" value="Enviar " /></p>

</fieldset>

Javascript Code:

function send_data()
{
    var usuario = $('#nombre').val();
    var email = $('#email').val();
    var commentario = $('#comment').val();

    $.ajax({
    url: "ver.php?usuario=" + usuario + "&email=" + email + "&comentario=" + commentario,
    type: 'POST',
    success: function(result) {
        // use the result as you wish in your html here
    }});

}

PHP Code:

$connect=mysql_connect("localhost","root","");  
//Seleccionamos la base  
mysql_select_db("mostra",$connect);
$nick=$_POST['usuario']; 
$email=$_POST['email']; 
$comentario=$_POST['comentario']; 
$query = "INSERT INTO comentarios (usuario,email,comentario,noticia_id, fecha) VALUES('$nick','$email','$comentario','$id', NOW())";
mysql_query($query) or die(mysql_error());

$query = "UPDATE  noticias SET num_comentarios= num_comentarios+1 where id_noticia='".$id."'";
mysql_query($query) or die(mysql_error());
于 2012-12-10T02:11:23.327 回答
0

AJAX 是完成您正在寻找的内容的最佳方式,而且您的代码极易受到 SQL 注入的攻击,我建议您对 PDO 准备好的语句做功课,以帮助防范它。看看这里Reload MySQL data inside a DIV using Ajax

于 2012-12-10T02:08:47.727 回答
0
<script type="text/javascript">
    $(function(){
        $('form').submit(function(){
            $.ajax({
                type:'POST',
                data:{'usuario':$(this).find("input[name=usuario]").val(),'email':$(this).find("input[name=email]").val()},
                success:function(returnData){
                    console.log(returnData)
                }
            })
            return false;
        })
    })
</script>
于 2012-12-10T02:10:08.820 回答