1

投稿値がアクションページに渡されていません。アクションページは静的な応答のみを返します。つまり、$_POST部分のないありがとうメッセージです。

以下はコードです。

JQuery

<script>
    $(function() {
        $('#myF').submit(function (e) {

            e.preventDefault();
            $('#contactForm').html('<img src="images/ajax_small.gif" />');
            subMe();
        });
    });

    function subMe() {
        $.post('?action=contactdetails', $('#myF').serialize(),
            function(data) {
                $('#contactForm').html(data.returnValue);
            }, "json");
    }
</script>

HTML

<form id="myF">
    <div id="contactForm" valign="top" style="width:417;text-align:center" class="main">
<table width="417" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td width="45"><span class="style3">Name</span></td>
                <td width="373" height="30"><input name="name" id="name" style="padding-left:5px" type="text" title="Name is required." class="required form" /></td>
              </tr>
              <tr>
                <td height="14" colspan="2"><img src="images/spicer.gif" width="1" height="1" /></td>
              </tr>
              <tr>
                <td><span class="style3">Email</span></td>
                <td width="373" height="30"><input name="email" title="Please enter a valid email id." id="emailid" style="padding-left:5px" type="text" class="validate-email required form" /></td>
              </tr>
<tr colspan="2">
<input type="submit" value="Submit" />
</tr>
          </table>
</div>
</form>

アクションページ

<?php   
    if ( $action == 'contactdetails' ) {
        $data['layout'] = 'layout_blank.tpl.php';
            $nme = $_POST['name']; 
        echo json_encode(array("returnValue"=>"<strong>Thank you " . $nme . " for contacting us.<br /> We will get back to you soon.</strong>"));
    }
    ?>
4

1 に答える 1

1

次の行を呼び出すまで<div id="contactForm">、入力は要素内にあります。

$('#contactForm').html('<img src="images/ajax_small.gif" />');

その時点でそれらは消えます。.serialize()それが発生すると、入力が見つからないため、呼び出しは値を返しません。

subMe()最初に呼び出してから、その<div>要素の内容を変更します。

$(function() {
    $('#myF').submit(function (e) {
        e.preventDefault();
        subMe();
        $('#contactForm').html('<img src="images/ajax_small.gif" />');
    });
});
于 2013-02-26T10:03:15.937 に答える