如何使用jQuery将值传递给.post序列化?

时间:2019-04-30 14:09:16

标签: php jquery

我有这些jQuery代码。

我生成6位数的随机数,每次单击按钮时,我都需要将其传递给.post序列化。我想在jQuery click函数内部生成数字。

以某种方式我无法将“ var tac_no” 的值传递到.post序列化中。

这是我的jQuery代码

$('#request_code').click(function(e){ 
            var tac_no = Math.floor(100000 + Math.random() * 900000);
            var data_tac = $("#form-tac").serialize()+"&type="+"updateTable";

            $.post("php/ajax-request-tac.php",data_tac).done(function( data ){
            if(data==true)
            { 
                alert('Request Success');  
            }
            else if(data==false)
            {
                alert('Request failed');
            }  
            });   
            return false;
        });

这是我的php代码

<?php
            require 'conn.php';
            function oracle_escape_string($str) 
            {
              return str_replace("'", "''", $str);
            }

            if((isset($_POST['type'])) && ($_POST['type']=='updateTable'))
            { 
                $sqlNextSeq         = "SELECT SEQ_TAC.nextval AS RUNNO FROM DUAL";
                $stid2              = oci_parse($ociconn,$sqlNextSeq);
                oci_execute($stid2);
                $row                = oci_fetch_array($stid2, OCI_RETURN_NULLS); 

                $query = "insert into table
                                                    (
                                                        ID, 
                                                        TAC_NO
                                                    ) 

                                            values 
                                                    (
                                                        '".$running_no."', 
                                                        '".oracle_escape_string($_POST['tac_no'])."', 
                                                    )
                    ";
                oci_execute(oci_parse($ociconn, $query));       
                echo true;
            }
        ?>

任何想法该怎么做?

感谢有人可以帮助我。谢谢。

2 个答案:

答案 0 :(得分:1)

我个人会在PHP中生成随机数,但我认为问题在于您没有使用post()函数将数据正确地传递到PHP中:

$.post("php/ajax-request-tac.php",data_tac).done(function( data ){

相反,您应该将其作为对象传递:

$.post("php/ajax-request-tac.php",{data_tac: data_tac, tac_no: tac_no}).done(function( data ){

答案 1 :(得分:0)

将该数字直接附加到tac_no,

$('#request_code').click(function(e) {
    var tac_no = Math.floor(100000 + Math.random() * 900000);
    var data_tac = $("#form-tac").serialize() + "&type=" + "updateTable"+"&tac_no="+tac_no;
    $.post("php/ajax-request-tac.php", data_tac).done(function(data) {
        if (data == true) {
            alert('Request Success');
        } else if (data == false) {
            alert('Request failed');
        }
    });
    return false;
});

无论使用哪种前端代码,用户始终可以看到您发送的内容,因此不会涉及安全性。