Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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
Php 对特定元素发出ajax请求的最有效方法_Php_Javascript_Jquery_Ajax - Fatal编程技术网

Php 对特定元素发出ajax请求的最有效方法

Php 对特定元素发出ajax请求的最有效方法,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,我一直在使用jQuery.load函数从页面中获取特定的div $('#result').load('ajax/test.html #variable123'); 这就像它应该做的那样,但是它需要花费很长时间,因为响应仍然包含完整的文档,即使#result中返回的是我定义的div。。在本例中#variable123 是否有其他方法可以实现这一点,但只让响应包含实际的div?返回此结果的最快方法是什么 为了进一步澄清,我正在搜索的id是从每个页面上的foreach循环生成的 <img na

我一直在使用jQuery.load函数从页面中获取特定的div

$('#result').load('ajax/test.html #variable123');
这就像它应该做的那样,但是它需要花费很长时间,因为响应仍然包含完整的文档,即使#result中返回的是我定义的div。。在本例中#variable123

是否有其他方法可以实现这一点,但只让响应包含实际的div?返回此结果的最快方法是什么

为了进一步澄清,我正在搜索的id是从每个页面上的foreach循环生成的

<img name="<?php echo $_product->getId() ?>"

html页面还有一个foreach循环,该循环生成与名称中传递的id相同的div块。大卫和胡安都提出了不同的解决方案。有人能给我解释一下吗?

因为你不能获取文件的任意部分:

$('#result').load('ajax/test_with_only_variable123_in_it.html');

当然,您可以使用服务器端程序,而不是生成静态文件包。

您可以尝试调用如下函数:

$('#target').load("functions.php",{action:"that_div"});

if($_POST){  
    $action = $_POST['action'];  
    if($action == "that_div"){  
        exit( "<div>Your div</div>" );  
    }    
    if($action == "another_div"){  
        exit("<div>Your another div</div>");  
    }  
}  
 $('img').click(function () {  
   $('#result').load('ajax/test.php?id=' + $(this).attr('name'));
 });
<?php 
// load class/model/whatever you need to do

$id = $_GET['id'];
$product = $productmodel->get($id); // or however you load a single product from your class/model

// echo data from $product
?>
$('#target').load(“functions.php”,{action:“that#div”});
如果($_POST){
$action=$_POST['action'];
如果($action==“that_div”){
退出(“您的部门”);
}    
如果($action==“另一个分区”){
退出(“你的另一个部门”);
}  
}  

正如David所建议的,您需要在服务器端而不是客户端实现功能。不可能使用javascript加载html文件的一部分,因此您需要为需要的每个结果创建一个单独的html文件(如David所建议的),或者创建一个服务器端脚本来管理此结果。例如:

您的html/js文件如下所示:

$('#target').load("functions.php",{action:"that_div"});

if($_POST){  
    $action = $_POST['action'];  
    if($action == "that_div"){  
        exit( "<div>Your div</div>" );  
    }    
    if($action == "another_div"){  
        exit("<div>Your another div</div>");  
    }  
}  
 $('img').click(function () {  
   $('#result').load('ajax/test.php?id=' + $(this).attr('name'));
 });
<?php 
// load class/model/whatever you need to do

$id = $_GET['id'];
$product = $productmodel->get($id); // or however you load a single product from your class/model

// echo data from $product
?>
我可能会使用.get()或.ajax()over.load()来传递数据,但对于本例,.load()应该如上所述

在test.php文件中,获取ID并加载所需的内容(如下所示):



如果第二部分没有意义,请告诉我们您的产品是如何存储的(无论您是使用简单的OO方法,还是使用php框架,如codeigniter),我们将尝试给出一个更详细的服务器端代码示例。

这不是客户端,这是服务器端只发送您需要的数据。您使用的是服务器语言吗?请您再解释一下,以帮助我理解这一点?您只需要在您请求的文件中输入您需要的内容,而不是输入很多内容。感谢您的进一步解释。这开始有意义了,我明白我需要做什么。。只是在努力写它。然而,它只是面向对象的,在Magento平台上工作。我用这个调用产品我不需要创建某种if/else逻辑吗?如果它匹配通过该参数传递的变量,那么它只回显该产品id的信息?不幸的是,我没有使用Magento,所以我不太确定它的结构。但是,您应该能够调用$this->getProduct($id)(即,将$id参数传递给getProduct()方法),并且它应该只返回与请求的id匹配的产品,从而避免需要任何if/else逻辑。