Php 内容仅在延迟时显示
通过Ajax将内容加载到div时出现问题。Php 内容仅在延迟时显示,php,ajax,jquery-ui-dialog,Php,Ajax,Jquery Ui Dialog,通过Ajax将内容加载到div时出现问题。 当我点击一个按钮时,我首先打开一个对话框。对话框将加载到php文件中。 在对话框的代码之后,我放置了一些代码,用于将某些内容加载到该php文件的div中。我的代码: function edit(serverpage, persoonid) { $(".opendg").dialog( { open:function () { $(this).load('/location/php/'
当我点击一个按钮时,我首先打开一个对话框。对话框将加载到php文件中。
在对话框的代码之后,我放置了一些代码,用于将某些内容加载到该php文件的div中。我的代码:
function edit(serverpage, persoonid)
{
$(".opendg").dialog(
{
open:function ()
{
$(this).load('/location/php/' + serverpage);
},
title: 'Change!',
autoOpen: true,
closeOnEscape: true,
height: 335,
width: 650,
modal: true,
resizable: false,
close: function(){},
buttons:
{
"Change": function()
{
sendedit(serverpage, persoonid);
return;
},
"Cancel": function()
{
$(this).dialog("close");
}
}
});
xmlhttp = ajaxFunction();
if (xmlhttp)
{
var url = "/location/php/" + serverpage;
var pagelength = serverpage.length;
var value = serverpage.substr(0,pagelength - 4);
var params = "edit=" + value + "&id=" + persoonid;
xmlhttp.open("POST", url, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.onreadystatechange = function()
{
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
if(xmlhttp.responseText != '')
{
value = value + 'form';
alert('test');
document.getElementById(value).innerHTML=xmlhttp.responseText;
}
}
}
xmlhttp.send(params);
}
}
正如您所见,我在将responseText发送到div之前发出了警报。我这样做是因为没有警报我会得到一个空表单
第一次打开对话框时,我什么也看不到。重新打开后,我看到一个我想要的内容的短闪光,但在毫秒内消失 生成内容的代码:
<?php
if($_POST['edit'] == 'editpersoneel')
{
//Query run here to get the results
echo '<form>
<table>
<tr>
<td class="first">
Location:
</td>
<td>
<input type="text" value="'.$result['location'].'" />
</td>
<td class="first">
phonenumber
</td>
<td>
<input type="text" value= "'.$result[phonenumber'].'" />
</td>
</tr>
</table>
</form>';
}
?>
<div id="editpersoneelform"></div>
我不太明白为什么ajax调用和serverpage中的值解析如此复杂,但也许您有一个JS代码用于多个地方的多个编辑函数。。。但说到点子上:
看起来您的
没有包含在HTML中,而AJAX是从HTML中调用的
假设您有类似的HTML文件(当您需要以原始方式调用AJAX时,我建议至少使用jQuery来处理元素):
调整
功能编辑(serverpage,persoonid){
$(“.opendg”)。对话框({
打开:函数(){
$(this.load('/location/php/'+serverpage);
},
标题:“改变!”,
自动打开:对,
closeOnEscape:没错,
身高:335,
宽度:650,
莫代尔:是的,
可调整大小:false,
关闭:函数(){},
按钮:{
“更改”:函数(){
sendedit(serverpage,persoonid);
返回;
},
“取消”:函数(){
$(此).dialog(“关闭”);
}
}
});
xmlhttp=ajaxFunction();
if(xmlhttp){
var url=“/location/php/”+serverpage;
var pagelength=serverpage.length;
var值=serverpage.substr(0,pagelength-4);
var params=“edit=“+value+”&id=“+persoonid;
open(“POST”,url,true);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
setRequestHeader(“内容长度”,参数长度);
setRequestHeader(“连接”,“关闭”);
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
如果(xmlhttp.responseText!=''){
价值=价值+形式;
警报(值);
$('div#'+value).html(xmlhttp.responseText);
}
}
}
xmlhttp.send(params);
}
}
然后就有了由AJAX调用的PHP文件:
<?php
if($_POST['edit'] == 'editpersoneel') {
//Query run here to get the results
$form = '<form>
<table>
<tr>
<td class="first">Location: </td>
<td><input type="text" value="'.$result['location'].'" /></td>
<td class="first">phonenumber</td>
<td><input type="text" value= "'.$result[phonenumber'].'" /></td>
</tr>
</table>
</form>';
echo $form;
}
?>
我不太明白为什么ajax调用和serverpage中的值解析如此复杂,但也许您有一个JS代码用于多个地方的多个编辑函数。。。但说到点子上:
看起来您的
没有包含在HTML中,而AJAX是从HTML中调用的
假设您有类似的HTML文件(当您需要以原始方式调用AJAX时,我建议至少使用jQuery来处理元素):
调整
功能编辑(serverpage,persoonid){
$(“.opendg”)。对话框({
打开:函数(){
$(this.load('/location/php/'+serverpage);
},
标题:“改变!”,
自动打开:对,
closeOnEscape:没错,
身高:335,
宽度:650,
莫代尔:是的,
可调整大小:false,
关闭:函数(){},
按钮:{
“更改”:函数(){
sendedit(serverpage,persoonid);
返回;
},
“取消”:函数(){
$(此).dialog(“关闭”);
}
}
});
xmlhttp=ajaxFunction();
if(xmlhttp){
var url=“/location/php/”+serverpage;
var pagelength=serverpage.length;
var值=serverpage.substr(0,pagelength-4);
var params=“edit=“+value+”&id=“+persoonid;
open(“POST”,url,true);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
setRequestHeader(“内容长度”,参数长度);
setRequestHeader(“连接”,“关闭”);
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
如果(xmlhttp.responseText!=''){
价值=价值+形式;
警报(值);
$('div#'+value).html(xmlhttp.responseText);
}
}
}
xmlhttp.send(params);
}
}
然后就有了由AJAX调用的PHP文件:
<?php
if($_POST['edit'] == 'editpersoneel') {
//Query run here to get the results
$form = '<form>
<table>
<tr>
<td class="first">Location: </td>
<td><input type="text" value="'.$result['location'].'" /></td>
<td class="first">phonenumber</td>
<td><input type="text" value= "'.$result[phonenumber'].'" /></td>
</tr>
</table>
</form>';
echo $form;
}
?>
如果您正在使用jquery,请使用$。ajax
@experimentX:我不能,因为这是一个学校项目:),我需要以这种方式使用ajax(在jquery之外)。。。但是谢谢你的提示!还请发布您的html代码(如果有)和引发的事件。如果您使用jquery,请使用$。ajax
@experimentX:我不能,因为这是一个学校项目:),我需要以这种方式使用ajax(在jquery之外)。。。但是谢谢你的提示!请同时发布您的html代码(如果有)和触发的事件。谢谢您的帮助,但我没有让它工作。还是一样的问题。也在一个不同的页面上,然后调整第一个div在editpersoneel.php上,第二个(带有调用)在personeel.phpYes上,这就是我所指出的-必须在AJAX调用(so)所在的同一页面上…我尝试将它放在
<?php
if($_POST['edit'] == 'editpersoneel') {
//Query run here to get the results
$form = '<form>
<table>
<tr>
<td class="first">Location: </td>
<td><input type="text" value="'.$result['location'].'" /></td>
<td class="first">phonenumber</td>
<td><input type="text" value= "'.$result[phonenumber'].'" /></td>
</tr>
</table>
</form>';
echo $form;
}
?>