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

时间:2015-06-18 09:05:09

标签: php jquery arrays

PHP功能

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;
    }

返回值

["123456","789012"]

用户输入

<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代码:

<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>

我无法调用PHP函数并在JS代码中传递json值来比较reg_product_serial的用户输入值。

  1. 如何获取为product_serial输入的用户输入并验证它 用php数组返回?
  2. 如果该用户输入不存在于数组验证用户中的警告 消息。

1 个答案:

答案 0 :(得分:0)

我不太明白为什么你对表单有一个ajax请求以及为什么它在document ready事件上。

据我所知,以下是我提出的代码。 我没有测试过,但它应该足以理解方向和主要想法。

如果您需要进一步的帮助,请添加评论。

<强> 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>