我正在使用PHP创建一个注册表单,并使用ajax创建jquery。每个字段都通过jquery / ajax验证到PHP后端。表格填写完毕后,我希望将所有通过ajax发送到PHP后端的注册数据提交给MySQL。
有人推荐使用我不熟悉的JSON。 OOP对我来说仍然很陌生,我对程序设计很熟悉。
以下是一些代码剪辑,例如清酒。我的注册表有四个值,我想提交(电子邮件,全名,特征,密码)(但请不要分心我的问题,我在下面概述)
有点jquery:
$('#fullname_field').blur(function(){
//alert('test');
var fullname = $('#fullname_field').val();
$.ajax({
url: "register_backend.php",
type: 'POST',
data: 'fullname=' + fullname,
success: function(result) {
//alert("a success");
//alert(result);
$('#fullname_status_return').empty();
$('#fullname_status_return').append(result);
}
});
PHP后端的相应代码:
if (filter_has_var(INPUT_POST, "fullname")) {
$fullname = mysql_real_escape_string(filter_input(INPUT_POST,'fullname'));
$testvalue = $fullname;
$shorttest = $fullname;
$denychars = stripslashes($fullname);
}
if (strlen($shorttest) < '5')
{
$echo "This field is too short.";
} else {
////////// end short test
////////// if string is not too short, it runs the rest of the code, otherwise this is all it runs
$result = mysql_query("SELECT * FROM deniednames WHERE deniedname = '$testvalue'",$db);
if (!$result)
die(mysql_error());
$rowcheck = mysql_num_rows($result);
if ($rowcheck > '0') {
echo "This name is forbidden, please choose another.";
}
}
我的问题是: 当用户填写所有字段并点击提交按钮时,如何将所有字段发送到PHP,以及PHP如何拦截它并将其转换为可以验证的可用数据然后扔进我的数据库?
进一步打破这一点,我不确定如何使用JSON捕获这些值,或者相反,将它们注入JSON,然后将该JSON提供给PHP后端,然后获取PHP代码以接受JSON输入。
我在网上倾注了JSON的介绍和信息,但我只是没有得到它,并且非常感谢一些启发。
(这里是,live:http://www.dixieandtheninjas.net/dynasties/register.php)
答案 0 :(得分:1)
JSON只是表示对象的一种方式。在JS中,你可以通过用{和}声明它来创建一个对象文字,比如
var user = {name: 'jeremy'}
您可以使用jQuery的$ .ajax函数(或任何类似函数)将其“发送”给PHP,在PHP中,您可以将其作为普通的$ _POST或$ _GET数组接收。
您可以使用jQuery从输入中获取值并将它们放入数据数组中。在这里找到关于jQuery和ajax的更多信息:http://api.jquery.com/jQuery.ajax/。如果要从PHP发送JSON响应,可以在数组上调用json_encode并回显它。
这有帮助吗?
答案 1 :(得分:0)
我建议使用jQuery表单插件。我使用过这个:http://malsup.com/jquery/form/。
提交表单是一个简单的调用,例如:
$('#uploadForm').ajaxForm({
function () {
alert ('Form submitted') ;
}
});
它也支持JSON,以及一些回调和配置选项。但是,我认为在您的情况下,您可以使用标准表单编码。