使用ajax和php保存表单

使用ajax和php保存表单,php,jquery,ajax,wordpress,forms,Php,Jquery,Ajax,Wordpress,Forms,提交表单时,如何将任何带有ajax的$_Post['']传递给php函数 该函数正在使用AJAX,但无法接收帖子的值。 我进行了测试,警报返回null 我正在使用wordpress window.onload=function(){ jQuery('#newIdeaForm').submit(function(events){ call_ajax(events); events.preventDefault(); }); }; functi

提交表单时,如何将任何带有ajax的$_Post['']传递给php函数

该函数正在使用AJAX,但无法接收帖子的值。 我进行了测试,警报返回null

我正在使用wordpress

window.onload=function(){

jQuery('#newIdeaForm').submit(function(events){

    call_ajax(events);
    events.preventDefault();    
    }); 


  };    

function call_ajax(){

var name = $("#name").val(); 
jQuery.ajax({
    type: 'POST',
    url: myAjax.ajaxurl,
    data: {action : 'savedata'},
    success: function(response) {


        var json = jQuery.parseJSON(response); 
        alert(json.nome);


    }
});

 };

function savedata(){

$name =  $_POST['name'];
$my_post = array(
            'post_title'    => 'teste',
            'post_content'  => 'teste',
            'post_status'   => 'publish',
            'post_author'   => $user_id,
            );
        wp_insert_post($my_post);

        $callback = array('name' =>'teste','title'=>'teste','idea'=>'teste','nome' => $name);
        $myJson = json_encode($callback);
        echo ($myJson);
        die();
    }
编辑

伙计,我试过这样:

 function call_ajax(){ 
 var serializedForm = jQuery('#newIdeaForm').serialize(); 
 serializedForm.action = 'savedata'; 
 jQuery.ajax({ 
 type: 'POST', 
 url: myAjax.ajaxurl, 
 data: serializedForm, 
 success: function(data) { 
 alert(data); 
 } 

 }); 

但是,当我通过浏览器调试时,它似乎没有添加任何类似操作的内容,因此它没有进入php函数,任何人都可以帮助我?

在ajax调用中,您传递的数据转换为action=savedata,而在php中,您试图从POST数据中获取“name”。对于ajax请求,表单数据不会自动发送,因此您需要手动发送,如下所示:

jQuery.ajax({
  type: 'POST',
  url: myAjax.ajaxurl,
  data: {action: 'savedata', name: name},
  sucess: ...

或者使用.serialize()jQuery函数,该函数将自动将数据序列化为一个表单(然后可以将其作为数据参数提供)。

在ajax调用中,您传递的数据转换为action=savedata,但在PHP中,您试图从POST数据中获取“name”。对于ajax请求,表单数据不会自动发送,因此您需要手动发送,如下所示:

jQuery.ajax({
  type: 'POST',
  url: myAjax.ajaxurl,
  data: {action: 'savedata', name: name},
  sucess: ...

或者使用.serialize()jQuery函数,该函数将自动将数据序列化为一个表单(然后可以将其作为数据参数提供)。

在ajax调用中,您传递的数据转换为action=savedata,但在PHP中,您试图从POST数据中获取“name”。对于ajax请求,表单数据不会自动发送,因此您需要手动发送,如下所示:

jQuery.ajax({
  type: 'POST',
  url: myAjax.ajaxurl,
  data: {action: 'savedata', name: name},
  sucess: ...

或者使用.serialize()jQuery函数,该函数将自动将数据序列化为一个表单(然后可以将其作为数据参数提供)。

在ajax调用中,您传递的数据转换为action=savedata,但在PHP中,您试图从POST数据中获取“name”。对于ajax请求,表单数据不会自动发送,因此您需要手动发送,如下所示:

jQuery.ajax({
  type: 'POST',
  url: myAjax.ajaxurl,
  data: {action: 'savedata', name: name},
  sucess: ...

或者使用.serialize()jQuery函数,该函数将自动将数据序列化为一个表单(然后您可以将其作为数据参数提供)。

如果这是您正在执行的,我找不到您发布名为“name”的键

另外,请看:


希望这能奏效。让我知道它是如何运行的。

如果这是您正在执行的,我找不到您发布的名为“name”的密钥

另外,请看:


希望这能奏效。让我知道它是如何运行的。

如果这是您正在执行的,我找不到您发布的名为“name”的密钥

另外,请看:


希望这能奏效。让我知道它是如何运行的。

如果这是您正在执行的,我找不到您发布的名为“name”的密钥

另外,请看:


希望这能奏效。让我知道进展如何。

尝试序列化数据,并提供类似“application/json;charset=utf-8”的内容类型


尝试序列化数据并提供类似“application/json;charset=utf-8”的内容类型


尝试序列化数据并提供类似“application/json;charset=utf-8”的内容类型


尝试序列化数据并提供类似“application/json;charset=utf-8”的内容类型




尝试
警报(response.nome)
您正在用php调用
savedata()
?另外,设置
dataType:'json'
…不需要使用
parseJSON
,如果我使用dataType:'json',响应将被解析?尝试
alert(response.nome)
您正在用php调用
savedata()
?另外,设置
dataType:'json'
…不需要使用
parseJSON
,如果我使用dataType:'json',响应将被解析?尝试
alert(response.nome)
您正在用php调用
savedata()
?另外,设置
dataType:'json'
…不需要使用
parseJSON
,如果我使用dataType:'json',响应将被解析?尝试
alert(response.nome)
您正在用php调用
savedata()
?另外,设置
dataType:'json'
…不需要使用
parseJSON
,如果我使用dataType:'json',响应将已经被解析?对于url assign var url=“@url.Action(“Action”,“Controller”)”中的url;对不起,我不明白。您能更具体一点吗?其中url是url assign var url=“@url.Action(“Action”,“Controller”)”中url的php函数的url;对不起,我不明白。您能更具体一点吗?其中url是url assign var url=“@url.Action(“Action”,“Controller”)”中url的php函数的url;对不起,我不明白。您能更具体一点吗?其中url是url assign var url=“@url.Action(“Action”,“Controller”)”中url的php函数的url;对不起,我不明白。你能更具体一点吗?url是php函数的url如果我使用serialize,如何发送序列化表单?这样地?数据:{action:'savedata',form:serializedForm}?只要您知道要从php访问数据,您需要使用类似$_REQUEST['form']['name']的东西,或者您可以创建序列化表单,然后在发送数据之前执行serializedForm.action='savedata'。(只需使用serializedForm作为数据选项)听起来不错,我现在就试试!伙计,我试过这样做:函数调用_ajax(){var serializedForm=jQuery('#newIdeaForm').serialize();serializedForm.action='savedata';jQuery.ajax({type:'POST',url:myAjax.ajaxurl,data:serializedForm,success:function(data){alert(data);});但是当我通过浏览器调试时,它似乎没有添加任何类似操作的内容,因此它不会转到php函数。如果我使用serialize,我如何发送序列化的表单?像这样?数据:{action:'savedata',form:serializedForm}?只要您意识到要从php访问数据,您需要使用一些