-2

这是从数据库中获取记录的PHP代码:

<?php
    include("dbconn.inc");
    $data = mysql_query(
              "SELECT `subtitle`, `mian-title`, `page_num`, `note_path`, `flash_path`
              FROM `main-page`
              WHERE `page_num` =".$r." LIMIT 1";
    echo $data;
    if (mysql_num_rows($data) == 0) {
        echo "No rows found, nothing to print so am exiting";
        exit;
    }
    while ($row = mysql_fetch_assoc($data)) {
        echo $row['page_num'];
    }
    include("close.php");
?>

这是 HTML:

<form method="post" action="data.php">
    <input name="Button1" type="submit" value="&lt;&lt;" />
    <input name="test" style="width: 31px; height: 23px" type="text" /> // this is a value of page_num in DB.
    <input name="Button2" type="submit" value="&gt;&gt;" >
</form>

我想添加 Ajax 代码以从 PHP 代码中检索记录,然后根据返回的数据更改输入值,并且还想防止页面刷新!

4

2 回答 2

1

你需要给你的输入一个id。当您尝试在输入中设置值时,您需要使用.val()

<script>
    $(function() {
        $.get('yourfile.php', function(data) {
            $('#test').val(data);
        });
    });
</script>
</head>
    <body>

    <form method="post" action="data.php">
        <input name="Button1" type="submit" value="&lt;&lt;" />
        <input id="test" name="test" style="width: 31px; height: 23px" type="text" /> // This is a value of page_num in the database.
        <input name="Button2" type="submit" value="&gt;&gt;" >
</form>

如果您试图阻止表单提交,那么您需要:

  1. 给表单一个 id 属性。
  2. 捕捉.submit()事件
  3. 返回假

这会将数组编码为JSON

<?php
    $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
    echo json_encode($arr);
?>

在 Firefox 中使用Firebug(在控制台选项卡上),您将看到:

{"a":1,"b":2,"c":3,"d":4,"e":5}

现在在jQuery.get(),使用.getJSON().

然后在函数内部而不是

    $('#test').val(data);

采用

$('#test').val(data.a);
于 2012-10-13T21:54:38.893 回答
0

您必须使用jQuery调用该函数,并将信息推送到div,将旧信息推送出去。(如果这是您的意思。否则,您只需将其放入另一个div)。这将是这样的:

<script type="text/javascript">
    // jQuery document

    $(document).ready(function(){
        function getInfo() {
            $.get('yourfile.php', function(data) {
                $('#yourdiv').html(data);
            });

</script>

这应该可以解决问题。如果没有,您可以随时添加 a$.ajax而不是$.get.

$("#inputid).click(function(){
    if ('value' == this button){
        $.get('yourcontentsfile.php', function(data){
            $('#contentthatmustchangediv').html(data);
        }
        if('value' == the other one){
            $.get('yourcontentsfile.php', function(data){
                $('#contentthatmustchangediv').html(data);
            }
        });

我不完全确定这段代码会 100% 工作。您可能需要更改一两件事。但这个想法应该是对的。

(我不确定你是否注意到,但你输入了“mian-title”。这可能是一个错字。)

于 2012-10-13T21:37:32.430 回答