在Jquery对话框弹出窗口中填充表单元素

时间:2011-06-29 21:04:50

标签: javascript jquery jquery-ui-dialog

我是Jquery的新手,或者至少是Jquery的更高级功能。我一直在试图解决这个问题几天,我开始让自己心慌。

我所拥有的是页面,我们使用HTML只读文本框来显示结果。文本框由php通过sql搜索填充。但是,对于此示例,我已预设PHP变量以正确解决问题。

我正在尝试根据php变量填充对话框中的表单字段。我已经删除了我的测试代码,所以希望它的自我解释。这是主页的代码:

<?php
$Test1 = 'Test';
$Test2 = 'TestTest';
$Test3 = 'TestTestTest';
$Test4 = 'TestTestTestTest';
?>
<!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" />
<link href="css/jquery-ui-1.8.13.custom.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery-1.5.1.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.13.custom.min.js"></script>
<title>Untitled Document</title>

<script>
  $(document).ready(function() {
    $('#popout1 a').each(function() {
        var $link = $(this);
        var $dialog = $('<div></div>') 
            .load($link.attr('href') + '#formTest' )
            .dialog({
                autoOpen: false,
                title: $link.attr('title'),
                width: 600,
                height: 400,
                modal: true,

        });

$link.click(function() {
    $dialog.dialog('open');
    $dialog.parent().appendTo($("#formTest"));
    return false;
    });
    });
}); 
</script>

</head>

<body>
<div id="formTest">
<form name="formTest" id="formTest">
<table>
    <th>Test</th>
        <tr>
            <td><label for="Test1">Test1:</label></td>
            <td><input type="text" readonly="readonly" name="Test1" value="<?php echo $Test1?>" /></td>
        </tr>       
        <tr>
            <td><label for="Test2">Test2:</label></td>      
            <td><input type="text" readonly="readonly" name="Test2" value="<?php echo $Test2?>" /></td>
        </tr>
        <tr>
        <td id="popout1"><a href="popoutTest.php" title="Popout Test">Click here for more data</a></td>
        </tr>
</table>
</form>
</div>
</body>
</html>

这是弹出页面的代码:

    <table>
    <th>More Tests</th>
        <tr>
            <td><label for="Test3">Test3:</label></td>
            <td><input type="text" readonly name="Test3" value="<?php echo $Test3 ?>" /></td>
        </tr>       
        <tr>
            <td><label for="Test4">Test4:</td>      
            <td><input type="text" readonly name="Test4" value="<?php echo $Test4 ?>" /></td>
        </tr>
</table>

我的问题是如何使用主页上声明的php变量在弹出页面上填充test3和test4文本框。

1 个答案:

答案 0 :(得分:2)

将输入的name属性更改为id。

<table>
    <th>More Tests</th>
        <tr>
            <td><label for="Test3">Test3:</label></td>
            <td><input type="text" readonly id="Test3" value="<?php echo $Test3 ?>" /></td>
        </tr>       
        <tr>
            <td><label for="Test4">Test4:</td>      
            <td><input type="text" readonly id="Test4" value="<?php echo $Test4 ?>" /></td>
        </tr>
</table>

然后你可以用jQuery找到它们。

$('#Test3').val('the new value');
$('#Test4').val('the other new value');

编辑:您需要在主页面的某处保留php值,以便在显示弹出窗口时可用。