17

wordpressでajaxリクエストの結果を取得しようとしていますが、javascriptのアラートボックスで「0」の結果を取得しているため、フォームは次のようになります。

<form class="form" id="ajax-contact-form" action="#">                            
        <input type="text" name="name" id="name"  placeholder="Name" required="">
        <button type="submit" class="btn">Submit</button>
</form>

JavaScript は次のようになります。

$('#ajax-contact-form').submit(function(e){

    $.ajax({ 
         data: {action: 'contact_form'},
         type: 'post',
         url: ajaxurl,
         success: function(data) {
              alert(data); // This prints '0', I want this to print whatever name the user inputs in the form. 

        }
    });

})

そしてPHP:

add_action('wp_ajax_contact_form', 'contact_form');
add_action('wp_ajax_nopriv_contact_form', 'contact_form');

function contact_form()
{
echo $_POST['name'];    
}

上記のコードが正しいかどうかは誰にもわかりません。 $_REQUEST['name'] も試しましたが、うまくいきません。

どうもありがとう、

4

3 に答える 3

11

このようなことを試してみてnameください.PHP関数で期待しているパラメーターを追加していないため、jQuery ajax関数呼び出しcontact_formの属性に追加する必要があります.data

$('#ajax-contact-form').submit(function(e){
    var name = $("#name").val();
    $.ajax({ 
         data: {action: 'contact_form', name:name},
         type: 'post',
         url: ajaxurl,
         success: function(data) {
              console.log(data); //should print out the name since you sent it along

        }
    });

});
于 2013-09-13T03:29:50.463 に答える
0

JavaScript に name の属性も追加する必要があります。

こんな感じかも…………

$('#ajax-contact-form').submit(function(e){

$.ajax({ 
     data: {action: 'contact_form', name:name},
     type: 'post',
     url: ajaxurl,      
     success: function(data) {
          alert(data); 
    }
});

}))

于 2013-09-13T04:16:53.003 に答える