Jackson
Jackson

Reputation: 264

Ajax Call Returning Empty

i have a form as follows:

<div class="any_reg">

            <div class="mail_area">
                <form name="any_reg" id="any_reg" method="POST" action="" class="mail_area">
                <table>
                <tr>
                <td><input type="text" name="email" id="mail" placeholder="Enter Your Email"></td>
                <input type="hidden" name="id" value="<?php echo $auction ?>">
                <td><input type="submit" name="submitmail" id="submitmail" value="Submit"></td>
                </tr>
                </table>
                </form>
            </div>
        </div>  

i have an ajax call as follows: i have given the url as $ajaxUrl= $dir."/watchemailajax.php";

  if(tre == true){
            $.ajax({url: '<?php echo $ajaxUrl; ?>',method:'POST',
                    data:$('#any_reg').serialize()
                    ,success: function(result){
                        alert(result);
                        if (result== "Success"){

                            alert("SUCCESS");   
                        }else
                        {
                            alert("Failed");
                        }

Which Goes to a page with the following code:

 <?php
    if (strstr($_SERVER['PHP_SELF'],WPA_PLUGIN_NAME) && isset($_GET['submitmail'])){
    check_ajax_referer( "WPA-nonce" );

      $auction_id = $_POST['auction_id'];
      $watch_email = strip_tags(stripslashes($_POST['email']));
      $tablename = $wpdb->prefix . "wp_wpa_watchlist";

      $sql = "INSERT INTO ".$tablename." (auction_id, watch_email) VALUES (".$auction_id.", '".$watch_email."' );";
      $result = $wpdb->query($sql);

      if ($result){
        echo "Success";
          // _e("You will be notified of any changes to this auction",'wpauctions');
      }
      else {
        echo "Failed";
      }
    }

The call is returning empty data and nothing else. I am kinda newbie when it comes to Ajax and anything related to it. please help me. Wht is my mistake

Upvotes: 0

Views: 70

Answers (1)

Jesse Schokker
Jesse Schokker

Reputation: 896

You might be failing to meet the requirements for this if statement if (strstr($_SERVER['PHP_SELF'],WPA_PLUGIN_NAME) && isset($_GET['submitmail'])){ thus causing it to skip execution of the script. Add an else statement to the first if statement and add a message so you can see when it fails like so:

    if (strstr($_SERVER['PHP_SELF'],WPA_PLUGIN_NAME) && isset($_GET['submitmail'])){
        check_ajax_referer( "WPA-nonce" );

          $auction_id = $_POST['auction_id'];
          $watch_email = strip_tags(stripslashes($_POST['email']));
          $tablename = $wpdb->prefix . "wp_wpa_watchlist";

          $sql = "INSERT INTO ".$tablename." (auction_id, watch_email) VALUES (".$auction_id.", '".$watch_email."' );";
          $result = $wpdb->query($sql);

          if ($result){
            echo "Success";
              // _e("You will be notified of any changes to this auction",'wpauctions');
          }
          else {
            echo "Failed";
          }
        }
       else {

           echo "Failed if statement";

       }

Upvotes: 1

Related Questions