dongzong8110 2015-06-18 09:05
浏览 52

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.
  • 写回答

1条回答 默认 最新

  • dongqie2010 2015-06-18 11:46
    关注

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

报告相同问题?

悬赏问题

  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)