使用PHP将多个AJAX调用合并到一个

时间:2015-08-27 20:20:22

标签: javascript php jquery ajax

我有一个使用$ get()函数检索PHP变量的脚本,但我对每个变量都有多个请求。我想这样做,因为我希望调用是个人的,而不是等待加载所有变量。

这是我的简单代码:

的functions.php

$content1 = 'This is a good solution.';
$content2 = 'This is another good solution.';

if(preg_match('[good]', $content1)) { 

$result1 = "<p>Great, we found something here.</p>";

}else{

$result1 = "<p>Oops, nooooo.</p>";
}
/////////////////////////////////

if(preg_match('[another]', $content2)) { 

$result2 = "<p>Great, we found something here.</p>";

}else{

$result2 = "<p>Oops, nooo.</p>";
}

$action = $_GET['action'];

switch ($action) {
case 'result1':
echo $result1;
break;
case 'result2':
echo $result2;
break;
default:
echo 'Test';

}

GET.PHP

<script type='text/javascript'>

$.get('functions.php?action=result1', function(data) { 

$('.result1').html(data);

});


$.get('functions.php?action=result2', function(data) { 

$('.result2').html(data);

});

</script>

<div class="result1"></div>
<div class="result2"></div>
<div class="result3"></div>
<div class="result4"></div>
........

那么如何将所有javascript调用“合并”到一个(使用参数,我不知道),因此不需要为每个变量创建一个调用。

 <script type='text/javascript'>

$.get('functions.php?action=resultvariable', function(data) { 

$('.result_variable...').html(data);

});

</script>

2 个答案:

答案 0 :(得分:0)

试试这个:

// PHP:将varibles放入数组

$variables = array('result1'=> $result1, 'result2'=> $result2);
echo json_encode($variables);

// JS:更改ajax调用以获取json对象

$.get('functions.php', function(data) { 

$('.result1').html(data.result1);
$('.result2').html(data.result2);


}, 'json');

希望它可以提供帮助。

答案 1 :(得分:0)

你是说,是这样的吗?

function ajaxcall(action, div) {
    $.get('functions.php?action='+ action, function(data) { 

        $(div).html(data);

    });
}

您可以拨打电话

ajaxcall('result1','.result1');
ajaxcall('result2','.result2');
ajaxcall('result3','.result3');

......等等。