我有一个我需要修改的非常旧的脚本。您将从代码中注意到它使用的是mysql_query(),但这不是我的问题。
我在名为surveycommentslist.php的文件中有一个文本链接。该链接打开一个jquery模型窗口,我需要捕获用户输入的文本,然后将其保存到mysql以及链接data-id的值,该值告诉我连接注释的唯一用户ID。我的问题是我无法使用下面的代码获取data-id的值。
这是我的代码
<html>
<head>
<!-- common scripts -->
<!-- jQuery library -->
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.js"></script>
<!-- jQuery migrate -->
<script src="js/jquery-migrate-1.2.1.min.js"></script>
<!-- bootstrap framework plugins -->
<script src="bootstrap/js/bootstrap.min.js"></script>
</head>
<body>
<script>
$(document).on('click', '.reply', function()
{
//get acommentuid
var val = $(this).attr('data-id');
$.post('surveycommentslist.php', {acommentuid: val}, function(data)
{
console.log(data);
});
});
</script>
<?php
//lets list comments
$scommentsql = mysql_query("SELECT * FROM survey_comments
WHERE surveyid=$surveyid ORDER BY commentdate asc");
while($scrows = mysql_fetch_array($scommentsql))
{
extract($scrows);
$the_comment = stripslashes($the_comment);
$commentdate = date("m/d/Y h:ia", strtotime($commentdate));
if($touid > 0) { $indent = "margin-left:35px"; }
//get name of person making the comment
$nsql = mysql_query("SELECT fname, lname, userlevel, id AS scommentid FROM users WHERE id=$uid LIMIT 1");
$namerow = mysql_fetch_array($nsql);
$commenters_fname = stripslashes($namerow['fname']);
$commenters_lname = stripslashes($namerow['lname']);
if($namerow['userlevel'] > 19)
{
$adminicon = "<img src='./img/admin_smicon.png' alt='admin'>";
}
echo "<div class='ch-message-item clearfix' style='$indent'>
<div class='ch-content'>
$the_comment
</div>
<p class='ch-name'>
<strong>$adminicon $commenters_fname $commenters_lname</strong>
<span class='muted'>$commentdate</span>";
if($touid == 0)
{
echo " <a href='#switch_modal' class='reply btn btn-default id='$scommentid' btn-small' data-toggle='modal' data-id='$scommentid'>REPLY</a>";
}
echo "</p>
</div>";
}
答案 0 :(得分:0)
$(document).on('click', '.reply', function(e)
{
e.preventDefault();
//get acommentuid
var val = $(this).data('id');
$.post('surveycommentslist.php', {acommentuid: val}, function(data)
{
console.log(data);
});
});
答案 1 :(得分:0)
可能只是REPLY
中单引号和双引号的问题。你说$scommentid
有一个值,所以我假设它只是一个回声问题。试试这些:
//codes
.
.
//RE-POSITION class values from id value
echo "<a href='#switch_modal' class='reply btn btn-default btn-small' id='$scommentid' data-toggle='modal' data-id='$scommentid'>REPLY</a>";
//or by concatenation if I am wrong with the above solution
echo "<a href='#switch_modal' class='reply btn btn-default id=".'"$scommentid"'." btn-small' data-toggle='modal' data-id='$scommentid'>REPLY</a>";
//or by using the " if I am wrong with the above solutions
echo "<a href='#switch_modal' class='reply btn btn-default id="$scommentid" btn-small' data-toggle='modal' data-id='$scommentid'>REPLY</a>";
.
.
//codes
答案 2 :(得分:0)
未正确关闭类属性。行情问题。
更改此
echo " <a href='#switch_modal' class='reply btn btn-default id='$scommentid' btn-small' data-toggle='modal' data-id='$scommentid'>REPLY</a>";
到
echo "<a href='#switch_modal' class='reply btn btn-default' id='$scommentid' btn-small' data-toggle='modal' data-id='$scommentid'>REPLY</a>";
答案 3 :(得分:0)
当我将代码复制粘贴到文件中时在浏览器中执行该操作,它会显示&#34; data-id&#34;属性为空:http://screencast.com/t/pasXI14dp0x。这是由于早期消息中指出的HTML不正确。
即使在更正之后,仍然有“小”字样。不属于任何属性的文本。
错误的HTML是:
echo " <a href='#switch_modal' class='reply btn btn-default id='$scommentid' btn-small' data-toggle='modal' data-id='$scommentid'>REPLY</a>";
正确的HTML应该是:
echo " <a href='#switch_modal' class='reply btn btn-default btn-small' id='$scommentid' data-toggle='modal' data-id='$scommentid'>REPLY</a>";
您可以尝试的另一种方法是在&#34; data-id&#34;中对某些值进行硬编码。属性&amp;找出它是否被通过。如果可行,则问题在于HTML&amp;应使用上面更正的HTML代码修复。
答案 4 :(得分:0)
您的HTML标记错误
您可以通过执行查看源来检查
更改以下代码
echo " <a href='#switch_modal' class='reply btn btn-default id='$scommentid' btn-small' data-toggle='modal' data-id='$scommentid'>REPLY</a>";
<强>与强>
echo "<a href='#switch_modal' class='reply btn btn-default btn-small' id='$scommentid' data-toggle='modal' data-id='$scommentid'>REPLY</a>";
答案 5 :(得分:0)
我建议您使用return json_encode($data)
将数据从MySQL返回为JSON,其中$data
是一组键值对,当您在脚本标记/ JavaScript中获取数据时,在那里构建HTML并将其添加到div而不是从服务器返回HTML。
在脚本标记/ JavaScript中构建HTML时,可以添加JSON响应中的数据并循环注释。
也许那只是我,但我喜欢干净的代码:)