Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 操作检索到的由外部PHP脚本回显的数据 无论如何我都不认为自己是专业人士。我决定用这个夏天学习一些网络语言,让我可以把我的想法原型化——我是一名设计师_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 操作检索到的由外部PHP脚本回显的数据 无论如何我都不认为自己是专业人士。我决定用这个夏天学习一些网络语言,让我可以把我的想法原型化——我是一名设计师

Javascript 操作检索到的由外部PHP脚本回显的数据 无论如何我都不认为自己是专业人士。我决定用这个夏天学习一些网络语言,让我可以把我的想法原型化——我是一名设计师,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,为了回答这个问题,我很难弄清楚如何操作从外部.php脚本返回的元素。基本上,我是这样做的 process_feed.php: -获取数据,根据数据执行SQL搜索,输出行 while ($row = mysql_fetch_assoc($feedResult)) { $ctime = date("U",strtotime($row['timestamp'])); echo '<div id="secretmsg">'.$row['secretms

为了回答这个问题,我很难弄清楚如何操作从外部.php脚本返回的元素。基本上,我是这样做的

process_feed.php: -获取数据,根据数据执行SQL搜索,输出行

 while ($row = mysql_fetch_assoc($feedResult))
    {
       $ctime = date("U",strtotime($row['timestamp']));

       echo '<div id="secretmsg">'.$row['secretmsg'].'</br>';
       echo '<div id="postedby">Posted By: '.$row['postedby'].'</div>';
       echo '<div id="timestamp">'.ago($ctime).'</div><button type ="button" name="'.$row['m_id'].'">Reply</button></div>';
    }
也许不是最好的解决方案,但我有一个时间间隔刷新feed,这样我就可以不断获得更新的信息

问题是:我正在尝试开发一个评论系统,用户可以在该系统中回复每篇文章。在我的流程页面上,我正在添加一个回复按钮,其名称设置为数据库中的ID。我正在尝试设置基本功能,其中回复按钮将打开文本输入进行评论,根据ID将消息发送到DB,等等。但是,在我的主页上,我无法操作元素,因为它正在被回响?为了将数据库中的信息回显到主页上,然后从主页上操作回显的div,我可以更改什么


我希望这是有意义的-感谢您的帮助:

如果我理解正确,那么您希望在添加数据后修改DOM-这样您就可以使用选择器获取所需的元素并执行任何您想要的操作-例如:

function processResponse(data) {

    // Selector to get all elements by class name within the whole document
    $('.secretfeed').html(data);

    // Selector to get all buttons by tag name inside $('.secretfeed')
    $('.secretfeed').find('button').text('foo'); 

    // Selector to get all buttons by attribute inside $('.secretfeed')
    $('.secretfeed').find('[type="button"]').text('bar');

    // Selector to get the element with the given id within the whole document
    $('#secretmsg').css('color', '#ff0000');

}
注:

HTML元素的ID在整个文档中应该始终是唯一的!在您的示例中,您可能会回显while循环中具有相同id的多个元素-改为使用class=

建议保存选择器,以便jQuery不需要反复解析DOM—例如:

var $myselector = $('.myclass');
$myselector.text('foo');
但是请记住,当您通过添加class=myclass的另一个元素来修改DOM时,选择器不会更新-然后需要再次分配变量,以便选择器也包含新插入的元素

另外,当您想处理DOM时,请确保它已准备就绪-关于回调processResponse,情况总是这样,因为jQuery会处理它,并且在它准备就绪之前不会执行回调-但是当您从页面重新加载时,请像这样包装代码:

var $myselector = $();
$(document).ready(function(){
    $myselector = $('.myclass');
});
其他信息:

最后,在您的问题范围之外,看一看事件委派,这样您就不需要直接选择所有元素-例如,如果您想向所有按钮添加一个单击处理程序,您不需要为每个按钮注册一个事件处理程序,但可以创建一个全局事件处理程序:

$(document).on('click', '.secretfeed button', function(){
    alert($(this).attr('name'));
});

你能试试$.post'../../process_feed.php',{name:SchoolName},processResponsedata?这样做会使页面不显示来自外部PHP脚本的信息。似乎我必须在外部PHP脚本上对注释系统的功能进行编码,因为回复按钮在那里得到了响应?所谓“功能”,你是指Javascript吗?我想两者都是。javascript用于输入注释,然后使用ajax/PHP将其发送到数据库。您有没有一个地方可以让我一对一地与您讨论这个问题?我不确定这个网站是否有私人信息-我找不到。
$(document).on('click', '.secretfeed button', function(){
    alert($(this).attr('name'));
});