Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何在db中使用wordpress ajax存储表单数据_Jquery_Wordpress - Fatal编程技术网

Jquery 如何在db中使用wordpress ajax存储表单数据

Jquery 如何在db中使用wordpress ajax存储表单数据,jquery,wordpress,Jquery,Wordpress,我试图使用WordPress默认ajax保存表单数据,但它返回200,但不保存在数据库中 嗯,我尝试了所有方法,但是我的表单没有存储表单数据,但是我成功地使用控制台日志获取了一个 我试图使用wordpress默认ajax添加表单细节,以便在管理端创建表单。对于ajax,我创建了js文件,并作为管理员和函数包含在php文件中,用于插入添加到php文件中的数据 现在一切都正常了,我的页面正在使用ajex提交并打印表单数据,并在控制台中获取所有表单数据。这也没问题 我的ajax正在加载,但无法将数据保

我试图使用WordPress默认ajax保存表单数据,但它返回200,但不保存在数据库中

嗯,我尝试了所有方法,但是我的表单没有存储表单数据,但是我成功地使用控制台日志获取了一个

我试图使用wordpress默认ajax添加表单细节,以便在管理端创建表单。对于ajax,我创建了js文件,并作为管理员和函数包含在php文件中,用于插入添加到php文件中的数据

现在一切都正常了,我的页面正在使用ajex提交并打印表单数据,并在控制台中获取所有表单数据。这也没问题

我的ajax正在加载,但无法将数据保存到数据库中。 下面是一些代码

PHP代码


因此,请帮助我,我是wordpress ajax新手,无法解决此问题

您需要在页面上附加html,要做到这一点,您需要使用ajax调用的success函数,该函数将ajax调用的结果作为参数在本例中命名为html,我使用append将响应添加到页面主体标记

success: function(html) {
   $('body').append(html);//change the selector to your desired element
} 

您编写了错误的插入查询

替换此项:

$qry="insert user_data values(null,'$fname','$lname','$email','$phn','$adr')";
用这个

$qry="insert into user_data values('$fname','$lname','$email','$phn','$adr')";
或者只需使用wordpress标准插入:

$wpdb->insert( 
'user_data', 
array( 
    'column1' => 'value1', 
    'column2' => 123 
)
);
--------- 编辑:下面是正确的方法

表格:

<form action="" class="form" id="form" method="post" >
    <h1>Add Detail</h1>
    <label for="">Name</label>
    <input type="text" placeholder="First Name" name="fname" id="fname">

    <label for="">Last Name</label>
            <input type="text" placeholder="Last Name" name="lname" id="lname">

            <label for="">Email</label>
    <input type="text" placeholder="Email" name="eml" id="eml">

    <label for="">Phone No</label>
            <input type="text" placeholder="Phone" name="phn" id="phn">

            <label for="">Address</label>
    <textarea name="adr" id="adr" cols="30" rows="10" id="adr"></textarea>

    <input type="submit" value="SignUp" name="btnsave" id="btnsave">


</form>

你们说的ajex是什么?谢谢你们工作得很好,而且我的btnsave并没有设置,这就是为什么表格并没有提交。很高兴!这对你有帮助。看看我最新的答案。这是使用ajax的正确方法。
$wpdb->insert( 
'user_data', 
array( 
    'column1' => 'value1', 
    'column2' => 123 
)
);
<form action="" class="form" id="form" method="post" >
    <h1>Add Detail</h1>
    <label for="">Name</label>
    <input type="text" placeholder="First Name" name="fname" id="fname">

    <label for="">Last Name</label>
            <input type="text" placeholder="Last Name" name="lname" id="lname">

            <label for="">Email</label>
    <input type="text" placeholder="Email" name="eml" id="eml">

    <label for="">Phone No</label>
            <input type="text" placeholder="Phone" name="phn" id="phn">

            <label for="">Address</label>
    <textarea name="adr" id="adr" cols="30" rows="10" id="adr"></textarea>

    <input type="submit" value="SignUp" name="btnsave" id="btnsave">


</form>
<script>
jQuery('form#form').on('submit', function(e){
var fname = jQuery('#fname').val();
var lname = jQuery('#lname').val();
var eml = jQuery('#eml').val();
var phn = jQuery('#phn').val();
var adr = jQuery('#adr').val();
// calling ajax
$.ajax({
    type: 'POST',
    dataType: 'json',
    url: "<?php echo admin_url('admin-ajax.php'); ?>", 
    data: { 
        'action' : 'add_new_user',
        'fname': fname,
        'lname': lname,
        'eml': eml,
        'phn': phn,
        'adr': adr,  
    },
    success: function(data){
        if (data.res == true){
            alert(data.message);    // success message
        }else{
            alert(data.message);    // fail
        }
    }
});
});
</script>
add_action( 'wp_ajax_nopriv_add_new_user', 'add_new_user' );
add_action( 'wp_ajax_add_new_user', 'add_new_user' );
function add_new_user(){
global $wpdb;

$fname = sanitize_text_field($_POST["fname"]);
$lname = sanitize_text_field($_POST["lname"]);
$email = sanitize_text_field($_POST["eml"]);
$phn = intval($_POST["phn"]);
$adr = sanitize_text_field($_POST["adr"]);

$tableName = 'user_data';
$insert_row = $wpdb->insert( 
                $tableName, 
                array( 
                    'fname' => $fname, 
                    'lname' => $lname, 
                    'email' => $email, 
                    'phone' => $phn,
                    'address' => $adr, 
                )
            );
// if row inserted in table
if($insert_row){
    echo json_encode(array('res'=>true, 'message'=>__('New row has been inserted.')));
}else{
    echo json_encode(array('res'=>false, 'message'=>__('Something went wrong. Please try again later.')));
}
wp_die();
}