【问题标题】:Show results from form in a div在 div 中显示表单的结果
【发布时间】:2014-02-02 03:51:02
【问题描述】:

我是新手,所以请耐心等待:)。

我有一个这样的表格(从 php 文件回显):

<form id= \"myForm\" class=\"friendForm\" action=\"messages.php\" method=\"GET\" > 
        <input class=\"friendInput\" type=\"text\" name=\"idprijemce\" value='$idprijemce' hidden>  
        <input class=\"friendSubmit\" id=\"friendSubmit\" type=\"submit\" value='$cele_jmeno'>   
</form>

PHP 文件如下所示:

<?php                                                             
session_start();
 include('dbconnect.php'); 
  $idprijemce = "";
 if (isset($_GET["idprijemce"])) {    
 }                    
  $_SESSION['idprijemce'] = $idprijemce;    

    $idprihlaseneho = $_SESSION['idprihlaseneho'];

    $vyber = "SELECT zprava FROM chat 
      WHERE IDodesilatel='" . $_SESSION['idprihlaseneho'] . "' AND IDprijemce='" . $_SESSION['idprijemce'] . "' OR IDodesilatel='" . $_SESSION['idprijemce'] . "' AND IDprijemce='" . $_SESSION['idprihlaseneho'] . "' ORDER BY cas ASC";
   $vezmijmeno = "SELECT cele_jmeno FROM uzivatele WHERE ID='". $_SESSION['idprihlaseneho'] ."'";
   $jmeno = mysql_query($vezmijmeno) OR die("Error");

   while($radekjmeno=mysql_fetch_assoc($jmeno)){

     echo ("<b>".$radekjmeno['cele_jmeno'].":</b> <br>"); 
   }


   $result = mysql_query($vyber) OR die("Error: $vyber </br>".mysql_error());
    while($radek = mysql_fetch_assoc($result)){
    echo ($radek['zprava'] . "<hr><br>");      
}                        

        mysql_close();  

?>

事情是这样的 - 我需要在 div“消息”中显示来自数据库的信息(由 php 文件获取)(在索引页面上,表格也在哪里),也许通过 AJAX,但我没有必要的技能,我已经花了 2 多个小时寻找解决方案。 php 文件可以正常工作,但它会打开一个包含 DB 信息的全新页面。

您能帮我处理一下 AJAX 脚本吗?我应该把它放在哪里?

【问题讨论】:

    标签: javascript php html ajax forms


    【解决方案1】:

    最简单的实现将包括 jQuery(由于浏览器中的实现不同),这是一个应该可以工作的示例(当然,您需要转换此 html 并使其适应 php - 我没有为 php 变量添加转义/连接.. ):

    <html>
    <head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
    <script>
    function getAjax(){
        var idprijemce = $('#myForm .friendInput').val();
        var friendSubmit = $('#myForm .friendSubmit').val();
        $.ajax({
            type: "GET",
            url: "messages.php",
            data: {idprijemce:idprijemce,submit:friendSubmit}
        }).done(function( result ) {
            $("#msg").html( result );
            console.log('success');
        });
    }
    </script>
    </head>
    <body>
        <form id= "myForm" class="friendForm"> 
                <input class="friendInput" type="text" name="idprijemce" value='$idprijemce' hidden>  
                <input class="friendSubmit" id="friendSubmit" type="submit" value='$cele_jmeno' onClick="getAjax();">   
        </form>
        <div id="msg">
        </div>
        </form>
    </body>
    </html>
    

    如您所见,操作已从表单中删除并添加到直接调用 php 脚本的 javascript 例程中,接收输出,然后将其输出到 id="msg" 的 div。

    【讨论】:

    • 感谢您的建设性回复!它并没有奏效。我认为问题可能出在 php 文件中。它不应该为 AJAX 返回类似“成功”的东西吗?
    • 不,ajax 可以采用纯 html 页面或您发送和处理的任何格式。成功取决于输出标头,因此如果服务器返回 401 未找到错误,则表明调用不成功。您可以做的一件事是调试是否调用了 php 文件(通过 php 或 javascript 本身)。我已经编辑了代码并添加了 console.log 输出(您需要使用 firefox/chrome 并打开控制台才能查看输出).. 如果您看到消息,则表示调用成功。如果有一些错误,您也可以发布在控制台中发现的任何错误..
    • 好的,这真的很有帮助。现在它的效果比以前好一点。完全没有错误,脚本正在正确处理 php 文件。但是在输出 div 中有这个“错误”资源 id #6 而不是来自 DB 的消息。
    • 看起来您正在输出 mysql 查询,而不是查看字符串“Resource id #6”的结果
    猜你喜欢
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多