簡體   English   中英

jQuery 數組的數據在將其數據傳輸到另一個文件中的 PHP 數組后不會顯示在數據庫中

[英]Data of jQuery array won't show up on a database after transferring its data to a PHP array in another file

我正在將 jQuery 數組的值從 {file.js} 發送到另一個 PHP 數組到 {file.php}但傳輸的數據不會顯示在數據庫中 目標列中的空行將顯示在表中ID 將出現時的數據庫

我在 file.js 上編寫的腳本如下:

var emailText;
var emailArray = new Array();
$("#emailAddress").keypress(function (event){
    if(event.which === 13){
        var emailText = $(this).val();
        $(this).val("");
        emailArray.push(emailText);
        $('ul').prepend('<li>' + emailText + '<span><i class="fa fa-trash"></i></span>');
        $.post(
            "http://localhost/main_dir/dir/file.php", 
            emailArray,
            function(){
            alert('Your email has been added to the database successfully');
           }
        );
    }
});

我在 file.php 上寫的代碼如下:

<?php

require_once 'dbhandler.php';

$add_email = array("");

if ($_SERVER["REQUEST_METHOD"] == "POST") {

    $add_email = $_POST['emailArray'];

    $sql = "INSERT INTO databse (new_added_email) VALUES ('$add_email');";
    $result = mysqli_query($conn, $sql);

}


?>

第一:我不知道將array用於電子郵件的目的是什么,而ID 必須是唯一的,並且您必須只有一個 email 輸入所以在您的情況下不需要數組

第二:正如我在評論數據上發布的那樣,應該在大括號{}之間發布

第三:搜索任何類型的驗證以驗證發布到數據庫的數據

第四:最好將 email 發布到 php/數據庫,然后在返回時將 email 前置給用戶

在js中

$("#emailAddress").keypress(function (event){
    if(event.which === 13){
        var $this = $(this);
        var emailText = $this.val();
        if(validateEmail(emailText)){
         $.post(
            "http://localhost/main_dir/dir/file.php", 
            {email : email},
            function(data){
              console.log(data);
              $this.val("");
              $('ul').prepend('<li>' + data + '<span><i class="fa fa-trash"></i></span>');
              alert('Your email has been added to the database successfully');
           }
        );
       }else{
          alert(emailText+' Not valid email');
       }
    }
});

function validateEmail(email) {
     const re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
     return re.test(email);
}

在 php

<?php

require_once 'dbhandler.php';

if ($_SERVER["REQUEST_METHOD"] == "POST") {

    $add_email = $_POST['email'];
    // check for email validation 
    // if(email_is_valid){
      $sql = "INSERT INTO databse (new_added_email) VALUES ('$add_email');";
    
      if($result = mysqli_query($conn, $sql)){
         echo $add_email;
      }
    // } 
}


?>

I added function validateEmail(email) in js to check email validation you'll need another one for php validation just search for it then use it in php file before dealing with the database

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM