PHP新手问个问题,100分求助~大侠快来抢~

时间:2022-09-30 18:56:00
想实现这样的一个效果:页面上有一个输入框和按钮,用户在输入框内输入文字,点击按钮提交后,php会在后台根据输入的文字查询下数据,获得结果以后,弹出一个div,显示出获得的结果;

1.必须在当前页面弹出div显示结果,不能打开新页面;
2.查询出来的结果可能包含文字和图片;


我本来是想先画好这个要弹出的div的样子,设置display=none,然后php查询以后用javascrpit改变div的display=block,并且设置div里的文字和图片内容,但是不怎么会搞。

请说明一下实现思路和关键代码,也可有不同的思路,只要能实现最终效果就可以。如果有比较完整的demo的话不胜感激~php小菜鸟冰天雪地裸体跪求各位大侠~~~100分敬上~~~

13 个解决方案

#1


代码太多了,给你个下载连接:

http://www.tao114.com.cn/Dialog.rar

希望对你有帮助。。

文件有效期一天,明天我就删除了。。

这代码,很强大,我一直在用。。。

#2


友情下载,这代码的确不错。

#3


是还可以了,可惜无法全面实现LZ的需求,只实现了弹出一个对话框的功能,

至于lz要求的php会在后台根据输入的文字查询下数据,不能打开新页面的功能只能通过ajax+php实现了,至于怎么使用php+ajax,可以参考下面的视频
http://www.php100.com/html/shipinjiaocheng/PHP100shipinjiaocheng/2009/0525/2942.html(其实看了这个视频应该会懂的)

或者
http://topic.csdn.net/u/20110518/03/f619e6d8-4bef-4cb0-b472-4f5d0c3efb07.html

#4


谢谢各位大侠,还有吗~

#5


查询的话,就跟普通的PHP查寻没分别了,把结果放到JQuery的窗口插件里的窗口,这个是最快的了。否则一个DIV窗口的多浏览器兼容问题,都可能搞得头大,除非你自己有现成的JS弹窗库!

#6


这个可以ajax来解决
第一步页面引入jquery
<script type="text/javascript" src='jquery.js'></script>
第二步
<input type="text" id="text"/>

<input type="button"  value="提交"  onclick="sub()"/>
第三步ajax提交
function sub(){
var  value=$("#text").val();
$.ajax({
type     : "POST",
url      : "./ajax.php",//处理页面
data     : "flag="+value,
dataType : "html",
success  : function(ajaxData){
alert(ajaxData);
}
})

}
第四步接收参数
<?php
$v=$_POST['flag'];
$v就是接收的值
         进入数据库处理,然后获得返回值
    echo  返回值;
?>
返回到第三步function,调用你的div层,并插入数据
完成


我也是新手,难免有不足,但是这样新手也应该能懂

#7


ajax可以实现无刷新面页数据交互啊,或者用JQuery吧,
不过我对JQuery不是很了解,你可以问一下高手啊,
或者自己去学习一下。

#8


嗯,感谢各位~

#9


ajax或iframe,建议用iframe,如:

<iframe id="subFr" style="display:none"></iframe>
<form action="abc.php" target="subFr" 其它属性...>
......
</form>

abc.php在subFr中运行,运行结果用js将父窗口也就是subFr的display由none变为block,并CSS相对定位属性确定合理位置......

这只是思路而已,总之是会者不难,难者不会啊,呵呵。

#10


我給你用jquery寫了一個,你試試
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title> - </title>
<script type='text/javascript' src="@bak/jquery-1.5.2.min.js"></script>
<script type='text/javascript'>
(function($){
//擴展方法
$.pop=function(_this,_type,_mess,_P,_tim,_script){
$("#p_o").remove();
if(_type){
var Loc;
if(typeof(_this)=='object'){
_this=_this;
}else{
_this="#"+_this;
}
if(!_this){return;}

try{
Loc=$(_this).offset();
_T=Loc.top;
oW=$(_this).css("width");
}catch(e){}

popcss='<style type="text/css">';
popcss+='#p_o{width:auto;left:'+Loc.left+'px;background-color:#ECECCA;border:1px solid #B39F82;padding:1px;position:absolute;display:block;z-index:9999;opacity:0.95;}';
popcss+='#p_o div{background-color:#FEFEEA;padding:2px;}';
popcss+='#p_o .i{background:url("/img/pop.gif") no-repeat scroll 0 0 transparent;}';
popcss+='#p_o .l{background-position:1px -30px;float:left;height:20px;width:20px;margin:6px 0 0 2px;}';
popcss+='#p_o .r{word-wrap:break-word;padding:5px;margin:0 0 0 22px;line-height:20px;color:#AF7132;}';
popcss+='</style>';

$("body").prepend('<div id="p_o">'+popcss+'<div><span class="i l" id="lit"></span><p class="r">'+_mess+'</p></div><span class="i p"></span></div>');

_T=_T+parseInt($("#p_o").css("height"))/2;
$("#p_o").css("top",_T);
if(_tim){window.setTimeout('$("#p_o").remove();',_tim);}
if(_script){eval("("+_script+")");}
}else{
$("#p_o").remove();
}
}
})(jQuery)



$(function(){
//给输入框绑定三个事件
$('#aa').bind("blur change keyup",function(){
$.ajax({
type:"POST",url:"@.php",
data:"action=传递的参数内容:"+$(this).val()+"",
success:function(msg){
if(msg.length){
$.pop($('#aa'),true,msg,1,0,"");
}
}
});
})
});
</script>
</head>

<body>
<input type='text' name='aa' id='aa'>
</body>
</html>

#11


 $.pop=function(_this,_type,_mess,_P,_tim,_script){
這是我寫的一個jquery的通用插件,你可以讀一下代碼,你就會發現這個東西很強大,可以在倒數第二個參數傳遞關閉層的時間,也可以在最後一個參數傳遞js代碼進去,至於你如何用那你就看你的js水平如何了,基本上差個插件稍作修改就能做到很多你意想不到的東西.關鍵在於你的發揮.

#12


这个就直接ajax+php 然后javascript控制div显示隐藏了...
应该算简单吧....

#13


上邊PHP部分的代碼是:

<?php
Echo "<img src=''><strong>aa啊</strong>",$_POST['action'];

#1


代码太多了,给你个下载连接:

http://www.tao114.com.cn/Dialog.rar

希望对你有帮助。。

文件有效期一天,明天我就删除了。。

这代码,很强大,我一直在用。。。

#2


友情下载,这代码的确不错。

#3


是还可以了,可惜无法全面实现LZ的需求,只实现了弹出一个对话框的功能,

至于lz要求的php会在后台根据输入的文字查询下数据,不能打开新页面的功能只能通过ajax+php实现了,至于怎么使用php+ajax,可以参考下面的视频
http://www.php100.com/html/shipinjiaocheng/PHP100shipinjiaocheng/2009/0525/2942.html(其实看了这个视频应该会懂的)

或者
http://topic.csdn.net/u/20110518/03/f619e6d8-4bef-4cb0-b472-4f5d0c3efb07.html

#4


谢谢各位大侠,还有吗~

#5


查询的话,就跟普通的PHP查寻没分别了,把结果放到JQuery的窗口插件里的窗口,这个是最快的了。否则一个DIV窗口的多浏览器兼容问题,都可能搞得头大,除非你自己有现成的JS弹窗库!

#6


这个可以ajax来解决
第一步页面引入jquery
<script type="text/javascript" src='jquery.js'></script>
第二步
<input type="text" id="text"/>

<input type="button"  value="提交"  onclick="sub()"/>
第三步ajax提交
function sub(){
var  value=$("#text").val();
$.ajax({
type     : "POST",
url      : "./ajax.php",//处理页面
data     : "flag="+value,
dataType : "html",
success  : function(ajaxData){
alert(ajaxData);
}
})

}
第四步接收参数
<?php
$v=$_POST['flag'];
$v就是接收的值
         进入数据库处理,然后获得返回值
    echo  返回值;
?>
返回到第三步function,调用你的div层,并插入数据
完成


我也是新手,难免有不足,但是这样新手也应该能懂

#7


ajax可以实现无刷新面页数据交互啊,或者用JQuery吧,
不过我对JQuery不是很了解,你可以问一下高手啊,
或者自己去学习一下。

#8


嗯,感谢各位~

#9


ajax或iframe,建议用iframe,如:

<iframe id="subFr" style="display:none"></iframe>
<form action="abc.php" target="subFr" 其它属性...>
......
</form>

abc.php在subFr中运行,运行结果用js将父窗口也就是subFr的display由none变为block,并CSS相对定位属性确定合理位置......

这只是思路而已,总之是会者不难,难者不会啊,呵呵。

#10


我給你用jquery寫了一個,你試試
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title> - </title>
<script type='text/javascript' src="@bak/jquery-1.5.2.min.js"></script>
<script type='text/javascript'>
(function($){
//擴展方法
$.pop=function(_this,_type,_mess,_P,_tim,_script){
$("#p_o").remove();
if(_type){
var Loc;
if(typeof(_this)=='object'){
_this=_this;
}else{
_this="#"+_this;
}
if(!_this){return;}

try{
Loc=$(_this).offset();
_T=Loc.top;
oW=$(_this).css("width");
}catch(e){}

popcss='<style type="text/css">';
popcss+='#p_o{width:auto;left:'+Loc.left+'px;background-color:#ECECCA;border:1px solid #B39F82;padding:1px;position:absolute;display:block;z-index:9999;opacity:0.95;}';
popcss+='#p_o div{background-color:#FEFEEA;padding:2px;}';
popcss+='#p_o .i{background:url("/img/pop.gif") no-repeat scroll 0 0 transparent;}';
popcss+='#p_o .l{background-position:1px -30px;float:left;height:20px;width:20px;margin:6px 0 0 2px;}';
popcss+='#p_o .r{word-wrap:break-word;padding:5px;margin:0 0 0 22px;line-height:20px;color:#AF7132;}';
popcss+='</style>';

$("body").prepend('<div id="p_o">'+popcss+'<div><span class="i l" id="lit"></span><p class="r">'+_mess+'</p></div><span class="i p"></span></div>');

_T=_T+parseInt($("#p_o").css("height"))/2;
$("#p_o").css("top",_T);
if(_tim){window.setTimeout('$("#p_o").remove();',_tim);}
if(_script){eval("("+_script+")");}
}else{
$("#p_o").remove();
}
}
})(jQuery)



$(function(){
//给输入框绑定三个事件
$('#aa').bind("blur change keyup",function(){
$.ajax({
type:"POST",url:"@.php",
data:"action=传递的参数内容:"+$(this).val()+"",
success:function(msg){
if(msg.length){
$.pop($('#aa'),true,msg,1,0,"");
}
}
});
})
});
</script>
</head>

<body>
<input type='text' name='aa' id='aa'>
</body>
</html>

#11


 $.pop=function(_this,_type,_mess,_P,_tim,_script){
這是我寫的一個jquery的通用插件,你可以讀一下代碼,你就會發現這個東西很強大,可以在倒數第二個參數傳遞關閉層的時間,也可以在最後一個參數傳遞js代碼進去,至於你如何用那你就看你的js水平如何了,基本上差個插件稍作修改就能做到很多你意想不到的東西.關鍵在於你的發揮.

#12


这个就直接ajax+php 然后javascript控制div显示隐藏了...
应该算简单吧....

#13


上邊PHP部分的代碼是:

<?php
Echo "<img src=''><strong>aa啊</strong>",$_POST['action'];