Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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
将jquery应用于从php回传的元素_Php_Jquery_Mysql_Draggable_Echo - Fatal编程技术网

将jquery应用于从php回传的元素

将jquery应用于从php回传的元素,php,jquery,mysql,draggable,echo,Php,Jquery,Mysql,Draggable,Echo,编辑:问题是由于JQUERY库加载不正确引起的,在我的原始问题中没有明确说明这个问题。抱歉 我使用jquery隐藏、发布php查询的结果,然后将结果回显到两个单独的div。然后我希望能够在这些div之间交换生成的图像。第一部分工作正常,但我无法让任何其他jquery脚本在这些div上工作(例如,可排序、可拖放等) 在过去的几周里,我对脚本编写还不熟悉。我想我需要在发送php之前对其进行json编码,但我在网上很难找到关于如何进行编码的明确指导。非常感谢您提供的任何帮助,无论是描述性的、对特定介绍

编辑:问题是由于JQUERY库加载不正确引起的,在我的原始问题中没有明确说明这个问题。抱歉

我使用jquery隐藏、发布php查询的结果,然后将结果回显到两个单独的div。然后我希望能够在这些div之间交换生成的图像。第一部分工作正常,但我无法让任何其他jquery脚本在这些div上工作(例如,可排序、可拖放等)

在过去的几周里,我对脚本编写还不熟悉。我想我需要在发送php之前对其进行json编码,但我在网上很难找到关于如何进行编码的明确指导。非常感谢您提供的任何帮助,无论是描述性的、对特定介绍资源的引用(例如,不是php.net),还是代码本身

我在下面包括相关的脚本。这一个有效:

<script type='text/javascript'> 
$(document).ready(function(){ 
$("#search_results").slideUp(); 
    $("#search_button").click(function(e){ 
        e.preventDefault(); 
        ajax_search(); 
    }); 
    $("#search_term").keyup(function(e){ 
        e.preventDefault(); 
        ajax_search(); 
    });    
}); 

function ajax_search(){     
  $( "#search_results").show(); 
  var search_val = $("#search_term").val();
  var search_valb = $("#search_theme").val(); 
  $.post( "./find.php", {search_term : search_val, search_theme : search_valb}, function(data){
       if (data.length>0){ 
         $( "#search_results").html(data);  
         $( ".portfolio_container").hide();
         $( ".portfolio_draggables").hide();
         $( "ul.clickable_container li").click(function(){
             $( ".portfolio_draggables").hide();
             var activeImage = $(this).find("a").attr('href'); 
             $( ".portfolio_container").show();
             $( activeImage).show(); 
             return false;           
        });  

       };
   });
};
</script>
对于那些对更多上下文感兴趣的人,我将使用jquery发布来自表单的输入。Php脚本匹配输入到mysql数据库中相应字母图像的字符。然后,它将这些图像的列表回显到一个div,并将该字母的所有图像的整个组合回显到另一个div。其想法是用户可以从第二个输出中拖动图像,以替换另一个div中的字母图像

非常感谢

$("ul.clickable li") 
未正确选择HTML id为clickable且类别为clickable容器的元素。更改元素的类(在jQuery/CSS中使用.选择)或id(使用#选择)

应该有用


此外,/src是不必要的,因为src不是标记。直接在PHP脚本中编写HTML并不是最干净的方法。我强烈建议您查看或加深了解。

谢谢您的关注。但我认为还有更根本的问题。我已经尝试了一百万种方式来选择元素,包括你建议的方式,但它不起作用。真的,我提交了这个问题b/c我想知道我在这里的想法是否有更根本的错误。就像jquery甚至没有“看到”php一样,因为它在页面加载后被回显。诸如此类的事情。不管怎样,谢谢你抽出时间。我去看看你要的那本书。有这么多,所以得到一个rec很好。jQuery从来没有见过PHP。它可以看到PHP生成的响应HTML。由于您正在对find.php进行AJAX调用,因此在客户端会得到一个HTML片段,jQuery应该能够完全在其数据对象内部进行操作。这就是工作搜索块正在做的事情。我怀疑您的主要问题只是选择元素的方式。使用AJAX API发布完整的代码可能有助于诊断您的问题。此外,由于您尝试做的基本上是拖放,并且您已经在使用jQuery UI Dragable,我不确定您为什么不尝试遵循Dropable示例,谢谢您的提示。非常感谢。拖放最终,仅针对此测试进行排序。本打算用我的最后一条消息编写HTML,而不是Php。只是想知道jquery是否看不到回响的html,因为它是在表单输入之前触发的。再次感谢。我将关闭此线程,因为您的答案在技术上是正确的。我只是搞错了这个问题。最后我发现这与jquery库的加载顺序有关。我很抱歉占用你的时间在一个问题上,这是看不见的根据我张贴。您的其他记录仍然很感谢。我们也会查看你的其他帖子,以获得提示。谢谢
$alpharray = array();
    while($row = mysqli_fetch_assoc($result)){      
        $alpharray[$row['letter']][] = $row;
    }

$first = $second = array();
foreach( str_split( $_POST['search_term']) as $alpha)
{ 
    $first[] = "<li><a href = '#$alpha'><img class='imgs_clickable_droppable' img src='../Letterproject/images/{$alpharray[$alpha][0]['photoPath']}' width='100' height='140'></src></a></li>";
    $editable = array("<div id='$alpha' class='portfolio_draggables'>");
    foreach ($alpharray[$alpha] as $tempvar)
    {                                              
         $editable[] = "<a href ='findall.php'><img src='../Letterproject/images/{$tempvar['photoPath']}' width='70' height='110'></src></a>";                                                         
    }   
    $editable[] = '</div>';
    $second[] = implode( '', $editable);
}

    echo '<ul id = "clickable" class="clickable_container">';
        echo implode( '', $first);
        echo '</ul>';


    echo '<div id="portfolio" class = "portfolio_container">';
        echo implode( '', $second);
    echo '</div>';
$(function() {

    $("ul.clickable li").draggable({
        containment: 'parent',
        revert: 'invalid',
        opacity: '0.91',
        cursor: 'crosshair'
    });
    $('.clickable').sortable();
}); 
$("ul.clickable li") 
$("#clickable")