有没有办法让ajax在执行时更新自己的代码?我经常参加会议,如果可能的话,这将极大地减轻我的工作。这就像我试图(不成功)做的那样:
<!-- index.php (lots of code omitted) -->
<div id="ajax"><?php include 'ajax.php' ?></div>
和
<!-- ajax.php -->
<?php
session_start();
if(!isset($_SESSION["test"])) $_SESSION["test"] = "not set";
else $_SESSION["test"] = "set";
?>
<script>
$('#somebutton').click(function(){
$.ajax({
url: 'ajax.php',
dataType: 'html',
success: function(result){
$('#ajax').html(result);
$('#somediv').html('<?php echo $_SESSION["test"] ?>');
}
});
});
</script>
如果我正在尝试做的是什么,这段代码有什么问题?
答案 0 :(得分:0)
您正尝试在仅支持javascript,html和css的客户端上执行php服务器端脚本。
<?php echo $_SESSION["test"] ?>
这个注入元素的php代码永远不会执行,它的解析就像Html一样。 您需要提出两个ajax请求来解决您的问题。
您需要创建另一个php文件并对此执行另一个ajax请求。
例如,文件可以是:
<强> ajax2.php 强>:
<?php
start_session();
if(isset($_SESSION["test"))
echo $_SESSION["test"] ;
?>
<强>的javascript:强>
$('#somebutton').click(function(){
var ajaxCompleted = 0;
var result1 = '';
var result2 = '';
//First call
$.ajax({
url: 'ajax.php',
dataType: 'html',
success: function(result){
result1 = result;
ajaxCompleted++;
if(ajaxCompleted == 2){
printResult();
}
}
});
//Second call
$.ajax({
url: 'ajax2.php',
dataType: 'html',
success: function(result){
result2 = result;
ajaxCompleted++;
if(ajaxCompleted == 2){
printResult();
}
}
});
function printResult(){
$('#ajax').html(result1);
$('#somediv').html(result2);
}
});
我希望我能说清楚。