【发布时间】:2014-07-27 16:18:00
【问题描述】:
我正在创建一个简单的表单,它需要几个字段作为输入,运行一些 AJAX 检查并通过 PHP 提交到 SQL 数据库。我可以插入除电话号码以外的所有其他字段。这是代码的sn-p:
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 没有反映该值,这就是错误所在。
几个小时以来一直在寻找和尝试徒劳!任何帮助都会很棒,谢谢!
【问题讨论】:
-
你是用整数保存电话号码吗?
-
那么如果
$phone变量为空,您希望如何填充数据库列? -
使用萤火虫调试。通过 AJAX 调用设置了哪些值?
-
“你能找到错误”问题are not good questions for Stack Overflow。确保您提供一个简短但对问题的具体陈述,准确地告诉我们哪里出了问题。 “它不起作用”不是问题陈述。
-
仅供参考,您对SQL injections 持开放态度。
标签: javascript php html ajax