1

ユーザーがファンシーボックス内にあるオプションの1つをクリックした後、ファンシーボックスの外側に表示されるdiv内にテキストが表示されるコードを記述しようとしています(オプションを選択すると、ファンシーボックスが閉じます)

ここに私のコードがあります

index.php

<?php
session_start();
include('connect.php');
include('header.php');
?>

<body>
<a href="selectfield.php" id="selectfield" class="fancybox.iframe" rel="group">Field</a>: 
<span id="selectedfield_label"></span>
</body>
</html>

selectfield.php

<?php
include('connect.php');
include('header.php');
?>

</head>
<body>
<div class="row">
<div class="span12">
<?php
$searchcol = mysql_query("SELECT * from searchcolumn");
while($search = mysql_fetch_array($searchcol)){ ?>
<div class="span2" style="font-size:10px">
<a href="#" id="<?php echo $search['scol_id']; ?>" class="field" name="<?php echo $search['scol_id']; ?>"><?php echo $search['advsearch_name']; ?></a>
</div>
<?php
}
?>
</div>

</body>
</html>

script.js

$(document).ready(function(){

$("#selectfield").fancybox();
$("#selectcondition").fancybox();

$(".field").click(function(e) {
    var id = this.id;
    var name = $("#" + id).attr("name");
    var datastr='field='+name;
        $.ajax({
            url:'storefield.php',
            type:"POST",
            data:datastr,
            dataType:"json",
            success:function(result){
                $("#selectedfield_label").html(result['field']['fieldname']);
                parent.$.fancybox.close(true);
                }//success          
        });//ajax   
    });     
});

storefield.php

<?php
session_start();
include('connect.php');
$scol_id=$_POST['field'];

$query = mysql_query("SELECT * from searchcolumn where scol_id = $scol_id");
$a = mysql_fetch_array($query);

$_SESSION['fieldname'] = $a['advsearch_name'];
$_SESSION['col'] = $a['advsearch_col'];
$_SESSION['type'] = $a['advsearch_type'];

$result['field']['fieldname'] = $_SESSION['fieldname'];
$result['field']['col'] = $_SESSION['col'];
$result['field']['type'] = $_SESSION['type'];

echo json_encode($result);
?>

オプションを選択するとファンシーボックスを閉じることができましたが、ファンシーボックスの外側のdiv内にその名前($result['field']['fieldname'])を表示することはできません

すでにさまざまな組み合わせを試しましたが、うまくいきません

前もって感謝します

ここにサンプルのSQLデータがあります

INSERT INTO searchcolumn (advsearch_name,advsearch_col,advsearch_type) VALUES ('Title','title','varchar');
INSERT INTO searchcolumn (advsearch_name,advsearch_col,advsearch_type) VALUES ('Last Name','ln','varchar');
INSERT INTO searchcolumn (advsearch_name,advsearch_col,advsearch_type) VALUES ('First Name','fn','varchar');
INSERT INTO searchcolumn (advsearch_name,advsearch_col,advsearch_type) VALUES ('Middle Name','mn','varchar');
INSERT INTO searchcolumn (advsearch_name,advsearch_col,advsearch_type) VALUES ('Gender','gender','varchar');
INSERT INTO searchcolumn (advsearch_name,advsearch_col,advsearch_type) VALUES ('Age','age','varchar');
INSERT INTO searchcolumn (advsearch_name,advsearch_col,advsearch_type) VALUES ('Birthdate','bday','date');
4

1 に答える 1

2

ファンシーボックスはおそらくiframeにあるため、親ページを使用して、結果を書きたいdivを見つける必要があります

parent.$("#selectedfield_label").html(result['field']['fieldname']);
于 2012-11-04T01:36:00.170 に答える