jQuery - 用php数组检查用户输入

PHP function

function getSerialNumber(){


        $upload_dir = wp_upload_dir();
        $csvFile = $upload_dir['baseurl'].'/sample.csv';
        $csv = $this->csv_to_array($csvFile); //read csv

        foreach ($csv as $serialnum){
                $serial_num_array[]  = $serialnum['product_serial'];
        }

            $json_array = json_encode($serial_num_array);
            return $json_array;
    }

Return Value

["123456","789012"]

User input

<input name="product_serial" type="text" class="form-control login-field"
value="<?php echo(isset($_POST['reg_product_serial']) ? $_POST['reg_product_serial'] : null); ?>"
placeholder="Product serial number *" id="reg-product-serial" required/>

JS Code:

<script>
jQuery(document).ready(function($){

     $.ajax({
          url: "registration-form.php&f=getSerialNumber",
          type: "GET"
          success: function(data){
              console.log('eureka');
          }
       });


    $('input#reg-product-serial').on('blur', function() {
        alert($(this).val()); //alerts user input
    });

});
</script>

I am unable to call PHP function and pass json values in JS code to compare user input value for reg_product_serial.

  1. How to fetch user input entered for product_serial and validate it with php array returned ?
  2. If that user input does not exists in array validate user by alert message.

I didn't quite understand why do you have an ajax request to the form and why it's on the document ready event.

As far as I understood, the following is the code I came up with. I haven't tested it but it should be enough for understanding the direction and main idea.

If you'd need further help add a comment.

validSerials.php

function compareSerialNumber($userSerial){
       $validSerial = 0;    
       #Consider sanitizing the $userSerial variable (!!)

        $upload_dir = wp_upload_dir();
        $csvFile = $upload_dir['baseurl'].'/sample.csv';
        $csv = $this->csv_to_array($csvFile); //read csv

        foreach ($csv as $serialnum){
                if($userSerial == $serialnum['product_serial'])
                   $validSerial = 1;
        }
        echo $validSerial;
    }
echo compareSerialNumber($_GET['userSerial']);
die();

JS

<script>
jQuery(document).ready(function($){

    $('input#reg-product-serial').on('blur', function() {
       $.ajax({
          url: "validSerials.php",
          data: {userSerial: $(this).val() },
          type: "GET"
          success: function(res){
             if(res == 1)
               alert('Valid Serial');
             else
               alert('Invalid Serial');  
          }
       });

    });

});
</script>