我做了一个调用php文件的基本AJAX函数。响应是要插入内容框中的HTML"我的主页
function LoadAjax_alert_display_one(){
id_alert = <?php echo $id_alerte; ?>;
$('.preloader').show();
$.ajax({
mimeType: 'text/html; charset=utf-8', // ! Need set mimeType only when run from local file
url: 'ajax/alert_display_one.php',
data: "id_alerte="+id_alert,
type: 'GET',
success: function(data) {
$('#ajax-content').html(data);
$('.preloader').hide();
},
error: function (jqXHR, textStatus, errorThrown) {
alert(errorThrown);
},
dataType: "html",
async: false
});
}
工作正常。被叫文件&#39; alerts_create.php&#39;还运行一个php来从数据库中获取数据并使用while循环显示它
while ($stmt->fetch()) {
echo "<tr>";
echo "<td><a href='#' onclick='LoadAjax_alert_display_one();'>" . $nom_alerte . "</a></td>";
echo "<td>" . $country . "</td>";
echo "</tr>"; }
我的问题是我无法正确传递我在while循环中创建的链接。 $ nom_alerte总是取循环的最后一次迭代的值。所以我的AJAX把它作为链接值; 任何想法我怎么能这样做?
要简化我的标题:我的问题是将php变量发送到被调用文件(&#39; alerts_create.php&#39;)并检索HTML结果。
解决方案:只需将php变量作为AJAX函数参数传递:
function LoadAjax_alert_display_one(id_alerte){
$('.preloader').show();
$.ajax({
mimeType: 'text/html; charset=utf-8', // ! Need set mimeType only when run from local file
url: 'ajax/alert_display_one.php',
data: "id_alerte="+id_alerte,
type: 'GET',
success: function(data) {
$('#ajax-content').html(data);
$('.preloader').hide();
},
error: function (jqXHR, textStatus, errorThrown) {
alert(errorThrown);
},
dataType: "html",
async: false
});
}
答案 0 :(得分:1)
使用类似的东西
<script type="text/javascript">
var data = 'abc=0';
$.post(
'yoururl.php',
data
).success(function(resp){
var json = $.parseJSON(resp);
console.log(json);
});
并在php文件中使用这样的
while( $stmt->fetch() ) {
$data[] = array(
'link' => 'your link'
);
}
echo json_encode($data);