【问题标题】:PHP page not saving form and parsing outputPHP页面不保存表单和解析输出
【发布时间】:2012-05-02 19:21:18
【问题描述】:

我有这个 PHP 页面,它从表单中获取响应(我希望它确实如此),然后将数据输入到表中。然后,我在同一页面上回应来自表格的响应。我在表单页面上使用 ajax 发送表单值,并在 ajax 调用成功时将数据加载到 div 中。这一切都在没有刷新的情况下完成,但是没有发送任何信息,它只是刷新页面

我的 php 页面 -

<?php

$comment_name =  $_POST["name"];
$comment_body =  $_POST["comment"];
$film_no =  $_POST["hidden"];
echo $comment_name;
echo $comment_body;
echo $film_no; 


// Connects to your Database 
 mysql_connect("localhost", "****", "****") or die(mysql_error()); 
 mysql_select_db("ignitet1_CheckFilm") or die(mysql_error()); 

$query1 = "INSERT INTO film_comments (comments_id,film_no,name,comment) 
VALUES ('','$film_no', '$comment_name','$comment_body')";
$runquery1 = mysql_query($query1)or die(mysql_error()); 


$getComments = mysql_query("SELECT * FROM film_comments where film_no = '$film_no'") 
                 or die(mysql_error());     

                 while($info = mysql_fetch_array($getComments)) 
                 { 
                echo "<p>";
                echo $info['name']; 
                echo ":</p>";
                echo "<p>";
                echo $info['comment'];  
                echo "</p>";

                echo "<p>Comment posted on:";
                echo $info['timestamp'];    
                echo "</p>";
                echo "</div>";      
?>

我的表单和javascript代码

<form id="ContactForm2" onsubmit="return submitForm()" >        
<div>                                               <input type="hidden" name="hidden" id="hidden" value="2">
<label for="name">Your Name</label>
<input type="text" name="name" id="name" />
<label for="body">Comment Body</label>                  
<textarea name="comment" id="comment" cols="20" rows="5"></textarea>
<input type="submit" id="comment" class="button" value="Submit" />
<div class="form_result"> </div>
</form> </div>

<script>

function submitForm() {
    $.ajax({type:'POST', url: 'comment.php', data:$('#ContactForm2').serialize(), success: function(response) {
        $('#ContactForm2').find('.form_result').html(response);
    }});


} 

我尝试的一切似乎都不起作用。帮助将不胜感激! :)

【问题讨论】:

  • 在 PHP 中输​​出你的 $_POST 和 $('#ContactForm2').serialize() 的结果,这样至少你知道你是否正在发送和接收正确的数据。
  • 你的函数可能需要在标记之上,并且“onsubmit="return submitForm()"" 应该是 "onsubmit="submitForm()" 因为你的函数不会返回任何东西所以你将返回未定义(除非这是您取消默认行为的方式,但这不是一个好方法)
  • 你还没有关闭你的while循环。你在这里添加php代码是不是出错了?
  • 仅供参考,您对 SQL 注入完全开放,如果您还没有被黑客入侵,那么您将会被黑客入侵。学习使用 PDO 进行准备好的查询,以完全避免这个问题。
  • 序列化的结果如何输出?

标签: php javascript jquery mysql ajax


【解决方案1】:

用你的 php 试试这个对我来说工作正常。

<html>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script>
$(document).ready(function(){
    $('#sub').click(function(){
        $.ajax({type:'POST', url: 'comment.php', data:$('#ContactForm2').serialize(), success: function(response) {
        $('#ContactForm2').find('.form_result').html(response);
    }});
    });
})

    </script>
    <body>
        <div>
        <form id="ContactForm2"> >                                                       <input type="hidden" name="hidden" id="hidden" value="2">
<label for="name">Your Name</label>
<input type="text" name="name" id="name" />
<label for="comment">Comment Body</label>                  
<textarea name="comment" id="comment" cols="20" rows="5"></textarea>
<input type="button" id="sub" class="button" value="Submit" />
<div class="form_result"> </div>
</form> </div>


    </body>
</html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多