在div中获得完整的ajax-php请求的响应有问题

时间:2011-08-26 08:39:45

标签: php javascript ajax

我在ajax请求的div中获得响应时出现问题,该请求是由onclick事件通过表单&一个php页面。

代码:

<html>
<head>

<script language="javascript">
function commentRequest(counter) {
    new Ajax.Request("comment.php", 
    { 
        method: 'post', 
        postBody: 'commentbox='+ $F('commentbox_'+counter)+'&idc2='+$F('idc2_'+counter),
        onComplete: showResponse2
    });
}

function showResponse2(counter)
{
    document.getElementById('showcomments_'+counter).innerHTML= counter.responseText;
}

</script>

</head>

<body>

<form id="form1" method="post" action="insert.php">
 <textarea name="text1" id="text1"></textarea>
 <input type="submit" name="nbbutton" value="Submit"/>
</form>


<?php
$con = mysql_connect("localhost","myuser","Muddser@1");
if (!$con)
{
die('Could not connect: ' . mysql_error());
 }

 MySQL_select_db("mydb", $con);

 $result = mysql_query("SELECT * FROM table1 ORDER BY sl_no desc");

 while($row = mysql_fetch_array($result))

{
echo "$row['text1']";
}

$id=$row['sl_no'];



$queryout="SELECT * FROM comments WHERE idc='$idc'";
$resultout=mysql_query($queryout) or die(mysql_error());
while($row1 = mysql_fetch_array($resultout))



echo "<div id='showcomments_$idc'>";
echo "<div id='comment'><form name='comment' id='commentfrm'onSubmit='return false;'>";
echo "<input type='text' value='Post a Comment' name='commentbox' id='commentbox_$idc' 

tabindex='30' size='56'>";
echo "<input type='hidden' name='idc2' value='$idc' id='idc2_$idc'>";
echo "&nbsp;<input type='submit' name='submit' value='Post' id='commentbtn' 

tabindex='40' onClick='commentRequest($idc)'>";
echo "</form></div>";

echo "$row1['comment']";

echo "</div>";


 </body>
 </html>

在上面的内容中,我在表格中提交了一些文本字段的值。我在表单打开的同一页面上获得输出。

在这些产出中,我已就每项产出作出评论。

发表评论我创建了一个调用ajax函数commentRequest($ idc)的表单,因为你可以在head标签中看到它。

在通过ajax表示赞赏之后,我想在名为showcomments_ $ idc的div中显示表单提交的响应。

在这里,虽然我能够提交值bt但我完全无法在所需的div中显示响应......

如果ne1可以帮助我......

我非常需要它,因为我被困在我的项目中......

提前致谢...

此致 Muddser

1 个答案:

答案 0 :(得分:2)

showResponse2()函数中,您将counter视为字符串(搜索元素ID时)和包含AJAX响应的对象(分配respose文本时)。将您的函数commentRequest更改为:

function commentRequest(counter) {
    new Ajax.Request("comment.php", 
    {
        method: 'post', 
        postBody: 'commentbox='+ $F('commentbox_'+counter)+'&idc2='+$F('idc2_'+counter),
        onComplete: function(response) {
            document.getElementById('showcomments_'+counter).innerHTML= response.responseText;
        }
    });
}