SamDeveloper
SamDeveloper

Reputation: 536

Post and Get Not work in same page

Any body tell me why not work when i click next. blank. Get Or Post both bot work. but when refresh then work. look the print form and tell me. i think sql not fetch.

Wordpress Code

function SamDeveloper_page($content)
{
    global $wpdb;
    $table_name = $wpdb->prefix . "wp_SamDeveloper_question";
    $url = get_option('question_page').'&q=2';
    if ( is_user_logged_in() ){
        $_POST['q'] = (isset($_POST['q'])) ? $_POST['q']:'1';
        if(isset($_POST['add_ans']) && !empty($_POST['add_ans'])){

            $table_name = $wpdb->prefix . "wp_SamDeveloper_answer";
            $no = (isset($_POST['q'])) ? $_POST['q']:'1';
            $url = get_option('question_page').'&q='.($no+1);
        }

        $user_ID = get_current_user_id();
        $result = $wpdb->get_results('SELECT * FROM '.$table_name.' LIMIT '.($_POST['q']-1).',1', ARRAY_A);
        foreach($result as $value){
        $que = '<h4>Question No. '.$_POST['q'].'</h4>';
        $que .= '<form action="'.$url.'" method="post">';
        $que .= '<input type="hidden" name="q" value="'.($_POST['q'] + 1).'"/>';
        $que .= '<table>';
        $que .= '<tr>';
        $que .= '<th>Question</th>';
        $que .= '<th>Most</th>';
        $que .= '<th>Least</th>';
        $que .= '</tr>';
        $que .= '<tr>';
        $que .= '<td>'.$value['option_1'].'</td>';
        $que .= '<td><input type="checkbox" name="Option_1" value="a"></td>';
        $que .= '<td><input type="checkbox" name="Option_1" value="b"></td>';
        $que .= '</tr>';
        $que .= '<tr>';
        $que .= '<td>'.$value['option_1'].'</td>';
        $que .= '<td><input type="checkbox" name="Option_2" value="a"></td>';
        $que .= '<td><input type="checkbox" name="Option_2" value="b"></td>';
        $que .= '</tr>';
        $que .= '<tr>';
        $que .= '<td>'.$value['option_1'].'</td>';
        $que .= '<td><input type="checkbox" name="Option_3" value="a"></td>';
        $que .= '<td><input type="checkbox" name="Option_3" value="b"></td>';
        $que .= '</tr>';
        $que .= '<tr>';
        $que .= '<td>'.$value['option_1'].'</td>';
        $que .= '<td><input type="checkbox" name="Option_4" value="a"></td>';
        $que .= '<td><input type="checkbox" name="Option_4" value="b"></td>';
        $que .= '</tr>';
        $que .= '</table>';
        $que .= '<input type="hidden" name="user_id" value="'.$user_ID.'"> ';
        $que .= '<input type="hidden" name="add_ans" value="'.$value['id'].'">';
        $que .= '<input type="submit" name="add_ans" value="Next">';
        $que .= '</form>';
        print($que);
        }

    }
}

I am also try print echo.

Thanks

Upvotes: 0

Views: 61

Answers (1)

RazvanZ
RazvanZ

Reputation: 218

You could use hidden input tags (between <form> tags):

<input type="hidden" name="xyz" value="your value goes here"/>

After submission, they could be accessed using $_POST['xyz']

Your code should look like

function SamDeveloper_page($content)
{
    global $wpdb;
    $table_name = $wpdb->prefix . "wp_SamDeveloper_question";
    $url = get_option('question_page').'&q=2';
    if ( is_user_logged_in() ){
        $_POST['q'] = (isset($_POST['q'])) ? $_POST['q']:'1';
        if(isset($_POST['add_ans']) && !empty($_POST['add_ans'])){

            $table_name = $wpdb->prefix . "wp_SamDeveloper_answer";
            $no = (isset($_POST['q'])) ? $_POST['q']:'1';
            $url = get_option('question_page');
        }

        $user_ID = get_current_user_id();
        $result = $wpdb->get_results('SELECT * FROM '.$table_name.' LIMIT '.($_POST['q']-1).',1', ARRAY_A);
        foreach($result as $value){
        $que = '<h4>Question No. '.$_POST['q'].'</h4>';
        $que .= '<form action="'.$url.'" method="post">';
        $que .= '<input type="hidden" name="q" value="'.($_POST['q'] + 1).'"/>';
        $que .= '<table>';
        $que .= '<tr>';
        $que .= '<th>Question</th>';
        $que .= '<th>Most</th>';
        $que .= '<th>Least</th>';
        $que .= '</tr>';
        $que .= '<tr>';
        $que .= '<td>'.$value['option_1'].'</td>';
        $que .= '<td><input type="checkbox" name="Option_1" value="a"></td>';
        $que .= '<td><input type="checkbox" name="Option_1" value="b"></td>';
        $que .= '</tr>';
        $que .= '<tr>';
        $que .= '<td>'.$value['option_1'].'</td>';
        $que .= '<td><input type="checkbox" name="Option_2" value="a"></td>';
        $que .= '<td><input type="checkbox" name="Option_2" value="b"></td>';
        $que .= '</tr>';
        $que .= '<tr>';
        $que .= '<td>'.$value['option_1'].'</td>';
        $que .= '<td><input type="checkbox" name="Option_3" value="a"></td>';
        $que .= '<td><input type="checkbox" name="Option_3" value="b"></td>';
        $que .= '</tr>';
        $que .= '<tr>';
        $que .= '<td>'.$value['option_1'].'</td>';
        $que .= '<td><input type="checkbox" name="Option_4" value="a"></td>';
        $que .= '<td><input type="checkbox" name="Option_4" value="b"></td>';
        $que .= '</tr>';
        $que .= '</table>';
        $que .= '<input type="hidden" name="user_id" value="'.$user_ID.'"> ';
        $que .= '<input type="hidden" name="add_ans" value="'.$value['id'].'">';
        $que .= '<input type="hidden" name="q" value="'.($no+1).'">';
        $que .= '<input type="submit" name="add_ans" value="Next">';
        $que .= '</form>';
        print($que);
        }

    }
}

Upvotes: 1

Related Questions