我正在创建一个简单的表单,它将几个字段作为输入,运行一些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代码中,当检查&#34; if(isset($ _ POST [&#34; phone&#34;]))时,它没有显示任何错误,它会插入其他元素没有麻烦的形式。不知道为什么会这样,有什么想法吗?我的猜测是因为JS并没有反映出价值,而错误就在于此。
几个小时以来一直在寻找和尝试徒劳!任何帮助都会很棒,谢谢!
答案 0 :(得分:1)
status.innerHTML = phone; //testing, doesn't display anything
必须是
document.getElementById("status").innerHTML = phone;
答案 1 :(得分:1)
使用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>
答案 2 :(得分:0)
为什么不写$ query2 = mysqli_query($ con,$ sql)或者死(mysqli_error()); 这样,您就可以看到错误发生了什么
答案 3 :(得分:0)
请试试这个
$sql = "INSERT INTO users(phone) VALUES('".$phone."')";