0

这实际上是大型项目的一部分,所以我没有包含 css,但如果真的有必要,我愿意在这里发布。

好的,我有这个代码

<html>
<head>
<script src="js/jquery.js"></script>
<script type="text/javascript">
var q = "0";
function rr()
{
var q = "1";
var ddxz = document.getElementById('inputbox').value;
if (ddxz === "")
{
alert ('Search box is empty, please fill before you hit the go button.');
}
else
{
$.post('search.php', { name : $('#inputbox').val()}, function(output) {
    $('#searchpage').html(output).show();
});
var t=setTimeout("alertMsg()",500);
}

}

function alertMsg()
{
$('#de').hide();
$('#searchpage').show();
}


  // searchbox functions ( clear & unclear )
function clickclear(thisfield, defaulttext) {
    if (thisfield.value == defaulttext) {
        thisfield.value = "";
    }
}

function clickrecall(thisfield, defaulttext) {
    if (q === "0"){

    if (thisfield.value == "") {
        thisfield.value = defaulttext;
    }}
    else
    {

    }
}

//When you click on a link with class of poplight and the href starts with a # 

$('a.poplight[href^=#]').click(function() {

var q = "0";

$.post('tt.php', { name : $(this).attr('id') }, function(output) {
    $('#pxpxx').html(output).show();
});


    var popID = $(this).attr('rel'); //Get Popup Name

    var popURL = $(this).attr('href'); //Get Popup href to define size



    //Pull Query & Variables from href URL

    var query= popURL.split('?');

    var dim= query[1].split('&');

    var popWidth = dim[0].split('=')[1]; //Gets the first query string value



    //Fade in the Popup and add close button

    $('#' + popID).fadeIn().css({ 'width': Number( popWidth ) }).prepend('<a     href="#" class="close"><img src="images/close_pop.png" class="btn_close" title="Close Window" alt="Close" /></a>');



    //Define margin for center alignment (vertical + horizontal) - we add 80 to the height/width to accomodate for the padding + border width defined in the css

    var popMargTop = ($('#' + popID).height() + 80) / 2;

    var popMargLeft = ($('#' + popID).width() + 80) / 2;

    //Apply Margin to Popup

    $('#' + popID).css({ 

        'margin-top' : -popMargTop,

        'margin-left' : -popMargLeft

    });
    //Fade in Background

    $('body').append('<div id="fade"></div>'); //Add the fade layer to bottom of the body tag.

    $('#fade').css({'filter' : 'alpha(opacity=80)'}).fadeIn(); //Fade in the fade layer 



    return false;

});





//Close Popups and Fade Layer

$('a.close, #fade').live('click', function() { //When clicking on the close or fade     layer...

    $('#fade , .popup_block').fadeOut(function() {

        $('#fade, a.close').remove();  

}); //fade them both out



    return false;

});

    }); 
</script>
</head>
<body>
<input name="searchinput" value="search item here..." type="text" id="inputbox"     onclick="clickclear(this, 'search item here...')" onblur="clickrecall(this,'search item here...')"/><button id="submit" onclick="rr()"></button>

<div id="searchpage"></div>
<div id="backgroundPopup"></div>
<div id="popup" class="popup_block">
<div id="pxpxx"></div>              
</div>
</body>
</html>

好的,这里是 php 文件(search.php),一旦用户单击按钮(#submit),然后 php 文件(搜索.php)将处理数据并检查mysql上是否有与jquery传递的数据匹配的记录,因此如果存在则search.php会将数据传递回jquery函数,然后是jquery函数将数据输出到指定的 div(#searchpage)。

<?
if(isset($_POST['name']))
{
$name = mysql_real_escape_string($_POST['name']);

$con=mysql_connect("localhost", "root", "");
if(!$con)
{
die ('could not connect' . mysql_error());
}
mysql_select_db("juliver", $con);

$result = mysql_query("SELECT * FROM items WHERE title='$name' OR description='$name'     OR type='$name'"); 
$vv = "";
while($row = mysql_fetch_array($result))
{
$vv .= "<div id='itemdiv2' class='gradient'>";
$vv .= "<div id='imgc'>".'<img src="Images/media/'.$row['name'].'" />'."<br/>";
$vv .= "<a href='#?w=700' id='".$row['id']."' rel='popup' class='poplight'>View     full</a>"."</div>";
$vv .= "<div id='pdiva'>"."<p id='ittitle'>".$row['title']."</p>";
$vv .= "<p id='itdes'>".$row['description']."</p>";
$vv .= "<a href='http://".$row['link']."'>".$row['link']."</a>";
$vv .= "</div>"."</div>";
}
echo $vv;
mysql_close($con);
}
else
{
echo "Yay! There's an error occured upon checking your request";
}
?>

这是 php 文件(tt.php),jquery a.poplight click 函数将在其中传递数据,然后就像第一个 php 文件(search.php)的函数一样,它将在 mysql 上查找数据匹配,然后将它传回jquery,然后jquery会将文件输出到指定的div(#popup),一旦输出到指定的div(#popup),那么div(#popup)就会像弹出框一样显示(这实际上是一个弹出框)。

<? 
//session_start(); start up your PHP session!//
if(isset($_POST['name']))
{
   $name = mysql_real_escape_string($_POST['name']);

$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("juliver", $con);

$result = mysql_query("SELECT * FROM items WHERE id='$name'");

while($row = mysql_fetch_array($result))
{   
    $ss = "<table border='0' align='left' cellpadding='3' cellspacing='1'><tr><td>";    
$ss .= '<img class="ddx" src="Images/media/'.$row['name'].'" />'."</td>";
    $ss .= "<td>"."<table><tr><td style='color:#666; padding-right:15px;'>Name</td><td     style='color:#0068AE'>".$row['title']."</td></tr>";
    $ss .= "<tr><td style='color:#666; padding-right:15px;'>Description</td>    <td>".$row['description']."</td></tr>";
    $ss .= "<tr><td style='color:#666; padding-right:15px;'>Link</td><td><a href='".$row['link']."'>".$row['link']."</a></td></tr>";
    $ss .= "</td></tr></table>";

}
echo $ss;
mysql_close($con);
}
?>

这是问题所在,弹出框(.popup_block)未显示,因此jquery已输出到该div(.popup_block)的php文件(tt.php)中的数据(如果成功传递的话)将php文件放入jquery并由jquery输出)。

我的一些依赖于此的代码实际上正在工作,并且弹出框实际上正在显示,只是这部分,它没有显示并且没有来自 php 文件的数据,它是 jquery 函数应该将它输出到那个 div(.popup_block)

希望有人可以提供帮助,在此先感谢,无论如何我愿意接受任何建议和建议。

朱利弗

4

2 回答 2

1

首先想到的是,在页面加载之前调用脚本。要解决此问题,请使用:

 $(document).ready(function()
 {
      $(window).load(function()
      {
           //type here your jQuery
      });
 });

这将导致脚本等待整个页面加载,包括所有内容和图像

于 2012-09-25T15:00:51.310 回答
0

如果您使用 ajax 将数据交换到 php 文件中。然后检查您的 ajax 函数是否实际从您的 php 文件接收返回数据。

于 2015-03-19T14:16:17.620 回答