使用ajax和php保存表单
提交表单时,如何将任何带有ajax的$_Post['']传递给php函数 该函数正在使用AJAX,但无法接收帖子的值。 我进行了测试,警报返回null 我正在使用wordpress使用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
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访问数据,您需要使用一些