Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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
Javascript 动态字段未保存在数据库中_Javascript_Php_Mysql_Database_Wordpress - Fatal编程技术网

Javascript 动态字段未保存在数据库中

Javascript 动态字段未保存在数据库中,javascript,php,mysql,database,wordpress,Javascript,Php,Mysql,Database,Wordpress,我正在编写一个代码来添加动态字段并将它们保存到数据库中,但是当我保存时,它没有被保存,下面是我的代码,有人能告诉我我做错了什么吗 这是一个插件代码,我在其中添加了表单以动态添加字段并保存数据 这是表格代码: <?php /* Plugin Name: Link Changer Description: Changes the button link after certain clicks Version: 1.0 Text Domain: button-link-changer

我正在编写一个代码来添加动态字段并将它们保存到数据库中,但是当我保存时,它没有被保存,下面是我的代码,有人能告诉我我做错了什么吗 这是一个插件代码,我在其中添加了表单以动态添加字段并保存数据 这是表格代码:

    <?php
/*
Plugin Name: Link Changer
Description: Changes the button link after certain clicks
Version: 1.0
Text Domain: button-link-changer

*/


 if ( ! defined( 'ABSPATH' ) ) {
        exit; // Exit if accessed directly
    }

add_action( 'admin_menu', 'link_changer_menu' );


$con = mysqli_connect('localhost','aejaz_wp1','Q.gslkbUNCOT2zZUVSw82','aejaz_wp1');
if (!$con) {
    die('Could not connect: ' . mysqli_error($con));
}
else{
    echo '';
}


global $jal_db_version;
$jal_db_version = '1.0';

function jal_install() {
    global $wpdb;
    global $jal_db_version;

    $table_name = $wpdb->prefix . 'liveshoutbox';

    $charset_collate = $wpdb->get_charset_collate();

    $sql = "CREATE TABLE $table_name (
        id mediumint(9) NOT NULL AUTO_INCREMENT,
        links varchar(55) DEFAULT '' NOT NULL,
        hitsmade mediumint(9) NOT NULL,
        hitstocount mediumint(9) NOT NULL,
        PRIMARY KEY  (id)
    ) $charset_collate;";

    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    dbDelta( $sql );

    add_option( 'jal_db_version', $jal_db_version );
}

function jal_install_data() {
    global $wpdb;

    $welcome_name = 'Mr. WordPress';
    $welcome_text = 'Congratulations, you just completed the installation!';

    $table_name = $wpdb->prefix . 'liveshoutbox';

    $wpdb->insert( 
        $table_name, 
        array( 
            'time' => current_time( 'mysql' ), 
            'name' => $welcome_name, 
            'text' => $welcome_text, 
        ) 
    );
}

register_activation_hook( __FILE__, 'jal_install' );
register_activation_hook( __FILE__, 'jal_install_data' );

function link_changer_menu(){

  $page_title = 'Link Changer';
  $menu_title = 'Button Link Changer';
  $capability = 'manage_options';
  $menu_slug  = 'Button-Link-Changer';
  $function   = 'extra_post_info_page';
  $icon_url   = 'dashicons-media-code';
  $position   = 6;

  add_menu_page( $page_title,
                 $menu_title, 
                 $capability, 
                 $menu_slug, 
                 $function, 
                 $icon_url, 
                 $position );

add_action( 'admin_init', 'link_register_settings' ); 
}

    function link_register_settings() {   

   // Let's create and register the Sections. 
// - register_setting( $option_group, $option_name, $sanitize_callback );
    register_setting('button-link-changer', 'link_options', 'link_options_sanitize');
} 

//to save options as array create input fields
function bp_options_sanitize($input){
    $input['link_one'] = sanitize_text_field($input['link_one']);
    $input['link_two'] = sanitize_text_field($input['link_two']);
    $input['link_hits'] = sanitize_text_field($input['link_hits']);
    $input['links'] = sanitize_text_field($input['links']);
    return $input;
} // end link_options_sanitize

// Let's create the Main Page


function extra_post_info_page(){

 #saving plugin options to database from form ?>  

<h1>Button Link Changer</h1>   
    <form method="post" action="options.php">    
        <?php settings_fields( 'button-link-changer' ); ?>   
        <?php //do_settings_sections( 'button-link-changer' ); ?>    
        <?php $link_options = get_option('link_options') ?>
        <table class="form-table">    
           <tr valign="top">
                    <th scope="row">Link one</th>
                    <td>
                        <input type="text" name="link_options[link_one]" value="<?php echo esc_attr($link_options['link_one']); ?>" />
                    </td>
           </tr>

                <tr valign="top">
                    <th scope="row">Link two</th>
                    <td>
                        <input type="text" name="link_options[link_two]" value="<?php echo esc_attr($link_options['link_two']) ?>" />
                    </td>
                </tr>
                <tr valign="top">
                    <th scope="row">Link Hits</th>
                    <td>
                        <input type="text" name="link_options[link_hits]" value="<?php echo esc_attr($link_options['link_hits']) ?>" />
                    </td>
                </tr>

        </table>    
                    <?php submit_button(); ?> 
    </form>  


     <form name="add_me" id="add_me">
        <table id="dynamic">
            <input type="text" name="name[]" placeholder="Enter Your Name" />
            <button type="button" name="add" id="add_input">Add</button>
        </table>
        <input type="button" name="submit" id="submit" value="Submit" />
    </form>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-rc1/jquery.min.js"></script>
    <script>
        $(document).ready(function() {
            var i = 1;
            $('#add_input').click(function() {
                i++;
                $('#dynamic').append('<tr id="row' + i + '" ><td><input type="text" name="name[]" placeholder="Enter Your Name"/></td><td><button type="button" name="remove" id="' + i + '" class="btn_remove">Remove</button></td></tr>');
            });
            $(document).on('click', '.btn_remove', function() {
                var button_id = $(this).attr("id");
                $('#row' + button_id + '').remove();
            });
            $('#submit').click(function() {
                $.ajax({
                    url: "insert.php",
                    method: "POST",
                    data: $('#add_me').serialize(),
                    success: function(data) {
                        alert(data);
                        $('#add_me')[0].reset();
                    }
                });
            });
        });
    </script>             
<?php

//fetching data from database
global $wpdb;

$results = $wpdb->get_results( "SELECT option_value FROM $wpdb->options WHERE option_name='link_options'"); 

if(!empty($results)) {
    // output data of each row
     $arrayvalues=$results[0]->option_value;

$unserialized_categoriesx =  unserialize($arrayvalues);
echo $unserialized_categoriesx['link_one'];
$varlinkone = $unserialized_categoriesx['link_one'];
 echo "</br>"; 
echo $unserialized_categoriesx['link_two'];
$varlinktwo = $unserialized_categoriesx['link_two'];

$unserialized_categoriesx['link_hits'];
 $varlinkhits  =$unserialized_categoriesx['link_hits'];
} 


$hits = 0;
//counting and comparing hits


if ($hits[0]<= $varlinkhits)
{
$buttonlink="$varlinkone";
}
else
{
$buttonlink="$varlinktwo";
}
echo $hits[0];
?>
 <a href="<?php echo $_SESSION["button_url"] ?>" >Join Whatsapp Group</a>;

<?php

$_SESSION["button_url"] = $buttonlink;
?> 

<?php

}
function link_button_function()  {?>

    <a href="<?php echo $_SESSION["button_url"] ?>" id="clickme">Join Whatsapp Group</a>;

 <?php }
add_shortcode('button_link', 'link_button_function');

我要做的第一件事是首先确定问题是,是您的JS还是PHP。我要做的是
console.log($('add#me').serialize())
,或者查看浏览器的网络选项卡,看看发送了什么。如果这看起来没问题,那就是PHP方面的问题。@Keith抱歉,但我不确定在“网络”选项卡中签入什么数据,因为我可以看到没有控制台错误,实际上这是一个插件代码,如果您需要,我已经为您发布了问题中的完整代码,您是否可以选择在windows中使用chrome进入开发者模式,您可以执行
Ctrl+Shift+I
。其他浏览器/操作系统可能略有不同。一旦你有了这个,你应该会看到一个名为network的选项卡,点击这个,你应该会看到一个
insert.php
的请求,如果你点击右边的这个,你应该会看到
请求/响应是什么。请求不会insert.php,我可以在network选项卡中看到该文件如果你没有在network选项卡中看到请求,这对我来说意味着这是一种结束。如果您在执行ajax之前
console.log($('#add_me').serialize())
,然后查看console,这看起来正确吗?。
 <?php
$conn = mysqli_connect("localhost", "root", "", "aejaz_wp1");
$number = count($_POST["name"]);
if($number > 0)
{
 for($i=0; $i<$number; $i++)
 {
 if(trim($_POST["name"][$i] != ''))
 {
 $sql = "INSERT INTO wp_liveshoutbox(links) VALUES('".mysqli_real_escape_string($conn, $_POST["name"][$i])."')";
 mysqli_query($conn, $sql);
 }
 }
 echo "Data Inserted Successfully";
}
else
{
 echo "Enter Your Name";
}
?>