我正在创建一个简单的表单,它接受几个字段作为输入,运行一些 AJAX 检查并通过 PHP 提交到 SQL 数据库。我可以插入除电话号码之外的所有其他字段。这是代码片段:
HTML ---
<form name="signupform" id="signupform" onSubmit="return false;">
<div>Phone Number: </div>
<input id="phon" type="text" maxlength="20">
<button id="signupbtn" onClick="signup()">Create Account</button>
<span id="status" style="color: red"></span>
</form>
<小时/>
JS ---
function signup() {
var status = document.getElementById("status");
var phone = document.getElementById("phon").value;
status.innerHTML = phone; //testing, doesn't display anything
var ajax = ajaxObj("POST", "index.php"); // accepted
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true) {
if(ajax.responseText != "Succesfully signed-up!"){ ///returned from php file
status.innerHTML = ajax.responseText;
}
}
}
ajax.send("phone="+phone); //shoots variable to php
}
<小时/>
PHP ---
if(isset($_POST["phone"])) {
$phone = $_POST['phone'];
echo $phone; //was testing, again, nothing shows
$sql = "INSERT INTO users(phone) VALUES('$phone')";
}
$query2 = mysqli_query($con, $sql);
echo 'successfully_updated';
<小时/>
注意:我尝试检查 JS 和 PHP 是否正在接收电话号码,但它没有显示任何内容(尽管已经测试过,但仍显示其他表单元素,例如姓名和电子邮件)。但后来,在 PHP 代码中,当检查“if (isset($_POST["phone"])) 时,它没有显示任何错误,它毫无问题地插入表单的其他元素。不知道为什么会这样发生了,有什么想法吗?我的猜测是,由于 JS 没有反射(reflect)该值,所以这就是错误所在。
几个小时以来一直在寻找和尝试,但毫无结果!任何帮助都会很棒,谢谢!
最佳答案
使用 jQuery:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
phoneNum = $("#phon").val();
$("#signupbtn").click(function(){
$.ajax({url:"./index.php",data:{phone:phoneNum},success:function(result){
alert(result);
}});
});
});
</script>
关于javascript - 电话号码未插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24081073/