>我正在将jQuery数组的值从{file.js}发送到另一个PHP数组到{file.php},但传输的数据不会显示在数据库中 目标列中的空行将显示在数据库的表中,而 ID 将出现
我写在文件上的脚本.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');
}
);
}
});
我在文件上编写的代码.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);
}
?>
1st:我不知道将array
用于电子邮件的目的是什么,而ID必须是唯一的,并且您必须只有一个电子邮件输入 所以你的情况下不需要数组
2nd:正如我发布的那样,评论数据应该在大括号之间发布{}
3rd:搜索任何类型的验证以验证发布到数据库的数据
第四:最好将电子邮件发布到php/数据库,然后在返回时将电子邮件预置给用户
在 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;
}
// }
}
?>
我在 js 中添加了function validateEmail(email)
来检查电子邮件验证,您需要另一个进行 php 验证,只需搜索它,然后在处理数据库之前在 php 文件中使用它