如何解决如何将一组值发送到我的 php 脚本?
我想将 HTML 表单中的值发送到 php
脚本,该脚本应该能够读取这些值。
HTML:
<form id="details" method="POST" onsubmit="return submit(n,i,p,e,img)">
Full name: <strong name="name_1"></strong><br><br>
ID No:<strong name="org_number_1"></strong><br><br>
Mobile No:<strong name="ph_number_1"></strong><br><br>
E-mail: <strong name="email_1"></strong><br><br>
ID Card: <img src="" alt="preview" name="image" style="width: 100px; height: 100px;"><br><br>
<button id="go" type="submit">It's correct</button>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="preview_back_end.js" async></script>
Javascript:
function submit(n,img){
console.log("Going into submit()")
$.ajax({
type : "POST",//type of method
url : "database_registration.php",//your page
data : { name_1 : n,email_1 : e,image : img,org_number_1: i,ph_number_1: p },// passing the values
success: function(){
//do what you want here...
alert(data);
}
});
return false;
}
var arr=document.cookie.split(';')
for(var i=0; i<arr.length; i++){
var c=arr[i].split('=');
if (c[0].trim()=='name'){
document.getElementsByName("name_1")[0].innerHTML=decodeURIComponent(c[1]);
var nme=decodeURIComponent(c[1]);
}
else if(c[0].trim()=='ID No'){
document.getElementsByName("org_number_1")[0].innerHTML=decodeURIComponent(c[1]);
var id=decodeURIComponent(c[1]);
}
else if(c[0].trim()=='Mobile No'){
document.getElementsByName("ph_number_1")[0].innerHTML=decodeURIComponent(c[1]);
var phone=decodeURIComponent(c[1]);
}
else if(c[0].trim()=='Email'){
document.getElementsByName("email_1")[0].innerHTML=decodeURIComponent(c[1]);
var email=decodeURIComponent(c[1]);
}
}
const image = localStorage.getItem("Image");
document.getElementsByName("image")[0].src=image;
var img=image
submit(nme,id,phone,email,img);
php:
<?php
// Server name is localhost
$servername = "localhost";
// In my case,user name will be root
$username = "root";
// Password is empty
$password = "";
//current date
$date = date("Y-m-d");
// get values
$name=$_POST['name_1'];
$org_number=$_POST['org_number_1'];
$ph_number=$_POST['ph_number_1'];
$email=$_POST['email_1'];
$image=$_POST['image'];
echo $name ."<BR>";
echo $org_number ."<BR>";
echo $ph_number ."<BR>";
echo $email ."<BR>";
echo $image ."<BR>";
// Creating a connection
$conn = new mysqli($servername,$username,$password,"Employee_information");
// Check connection
if ($conn->connect_error) {
die("Connection failure: "
. $conn->connect_error);
}
// Creating a table Employees
$sql="CREATE TABLE IF NOT EXISTS Employees(Sl_no int AUTO_INCREMENT PRIMARY KEY,Full_name varchar(30) NOT NULL,ID_no INT(2) NOT NULL,Contact INT(10) NOT NULL,Email varchar(30) NOT NULL,registration_date DATE,ID_preview blob(10M))";
$conn -> query($sql);
// Inserting records
$stmt = $conn->prepare("INSERT INTO Employees (Full_name,ID_no,Contact,Email,registration_date,ID_preview)
VALUES (?,?,?)");
$stmt->bind_param("siissb",$name,$org_number,$ph_number,$email,$date,$image);
$stmt->execute();
if($stmt->execute())
echo "records inserted";
else
echo $stmt->error;
// Closing connection
$stmt->close();
$conn->close();
?>
当我运行这个时,我在 php 脚本中得到一个错误:
Warning: Undefined array key "name_1"
Warning: Undefined array key "org_number_1"
Warning: Undefined array key "ph_number_1"
Warning: Undefined array key "email_1"
与此同时,我在控制台中收到此错误:
POST http://127.0.0.1:5500/database_registration.php 405 (Method Not Allowed)
为什么数组键未定义?控制台错误是什么意思?我该如何解决这个问题?
编辑: 尝试打印 $_POST
数组,使用:
<?php
echo 'Post variables:<br />';
print_r($_POST);
?>
数组完全为空:
Post variables:
Array ( )
解决方法
您应该在提交表单时返回 false
。它正在提交默认表单。请试试这个:
<form id="details" method="POST" onsubmit="return submit(n,i,p,e,img)">
<!-- Your code here -->
</form>
<script>
function submit(n,img){
//Your Ajax request here
return false;
}
</script>
,
问题在于您没有阻止传统的提交操作。
通常使用 addEventListener
比旧的 onsubmit
HTML 属性更好。
我修改了您的代码以使其正常工作:
HTML
<form id="details" method="POST">
Full name: <strong name="name_1">1</strong><br><br>
ID No:<strong name="org_number_1">2</strong><br><br>
Mobile No:<strong name="ph_number_1">3</strong><br><br>
E-mail: <strong name="email_1">4</strong><br><br>
ID Card: <img src="" alt="preview" name="image" style="width: 100px; height: 100px;"><br><br>
<button id="go" type="submit">It's correct</button>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="preview_back_end.js" async></script>
preview_back_end.js
function submit(n,img){
console.log("Going into submit()")
$.ajax({
type : "POST",//type of method
url : "database_registration.php",//your page
data : { name_1 : n,email_1 : e,image : img,org_number_1: i,ph_number_1: p },// passing the values
success: function(){
//do what you want here...
alert("ok");
}
});
}
const dForm = document.getElementById('details');
dForm.addEventListener('submit',function(e) {
e.preventDefault()
submit(nme,id,phone,email,img);
});
var arr=document.cookie.split(';')
for(var i=0; i<arr.length; i++){
var c=arr[i].split('=');
if (c[0].trim()=='name'){
document.getElementsByName("name_1")[0].innerHTML=decodeURIComponent(c[1]);
var nme=decodeURIComponent(c[1]);
}
else if(c[0].trim()=='ID No'){
document.getElementsByName("org_number_1")[0].innerHTML=decodeURIComponent(c[1]);
var id=decodeURIComponent(c[1]);
}
else if(c[0].trim()=='Mobile No'){
document.getElementsByName("ph_number_1")[0].innerHTML=decodeURIComponent(c[1]);
var phone=decodeURIComponent(c[1]);
}
else if(c[0].trim()=='Email'){
document.getElementsByName("email_1")[0].innerHTML=decodeURIComponent(c[1]);
var email=decodeURIComponent(c[1]);
}
}
const image = localStorage.getItem("Image");
document.getElementsByName("image")[0].src=image;
var img=image
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。