我尝试从HTML表单发送包含用户名,密码等的数据 - > ajax - >实例 - > oop类文件。
但我不确定我有正确的方法......
首先是 index.php
上的表单 <!-- Formular for signing up -->
<form method="post">
<div class="form-group">
<label> Username </label>
<input type="text" class="form-control" name="newusername">
</div>
<div class="form-group">
<label> Password </label>
<input type="password" class="form-control" name="newpassword">
</div>
<div class="form-group">
<label> Your club </label>
<input type="text" class="form-control" name="newclub">
</div>
<input type="button" id="btn-reg" class="btn btn-success" value="Sign up!">
</form>
然后它通过我的脚本文件和ajax
$(document).ready(function () {
console.log('Script loaded...');
$("#btn-reg").on("click", reg);
// Function for registrate of new users
function reg(newusername, newpassword, newclub) {
$.post('classCalling.php', {
newusername: 'newusername',
newpassword: 'newpassword',
newclub: 'newclub'
});
};
});
然后我的数据会转到一个页面, classCalling.php ,其中我实例化了我的课程
?php
include("class/userClass.php");
include("class/pagesClass.php");
// Creating instance of the class userClass.php
$user = new User();
// Defining variables
$newusername = $_POST['newusername'];
$newpassword = $_POST['newpassword'];
$newname = $_POST['newclub'];
// Password hash
$hashpassword = sha1($newpassword);
$user->newUsers($newusername, $hashpassword, $newname);
?>
最后我的OOP课程,但我还没到达目前
public function newUsers($newusername, $newpassword, $newclub) {
// Using prepared statement to prevent mysql injections.
$stmt = $this->db->prepare("INSERT INTOusers(username,password, club)VALUES(?, ?, ?);");
$stmt->bind_param("sss", $newusername, $newpassword, $newclub);
if($stmt->execute()) {
echo "<h3 class='usercreated'>Användare skapad</h3>";
} else {
echo "<h3 class='usercreated'> Gick ej att skapa användare</h3>";
}
}
我收到这些错误注意:未定义索引:第13行/ Applications / MAMP / htdocs / web 2.0 / projektet / classCalling.php中的newusername
答案 0 :(得分:6)
我认为错误是因为你没有将任何参数传递给reg。
尝试将表单值传递给reg函数,它会很好
答案 1 :(得分:1)
您的代码问题在于您没有从表单中获取值。 您不需要将代码放在表单标记中。 使用这个表格和脚本,希望它可以帮助.....
<div class="form-group">
<label> Username </label>
<input type="text" class="form-control" name="newusername" id="username">
</div>
<div class="form-group">
<label> Password </label>
<input type="password" class="form-control" name="newpassword" id="password">
</div>
<div class="form-group">
<label> Your club </label>
<input type="text" class="form-control" name="newclub" id="club">
</div>
和脚本:
$(document).ready(function () {
console.log('Script loaded...');
$("#btn-reg").on("click", reg);
var newusername=$("#newusername").val();
var newpassword=$("#newpassword").val();
var newclub=$("#club").val();
function reg() {
$.post('classCalling.php', {
newusername: newusername,
newpassword: newpassword,
newclub: newclub
});
};
});
答案 2 :(得分:0)
尝试此功能:
function reg() {
var newusername=$(this).val();
var newpassword=$(this).val();
var newclub=$(this).val();
$.post('classCalling.php', {
newusername: newusername,
newpassword: newpassword,
newclub: newclub
},function(data){
console.log(data);
});
}
答案 3 :(得分:0)
试试这个
newUsers()
并将 public function newUsers($newusername, $newpassword, $newclub) {
// Using prepared statement to prevent mysql injections.
$stmt = $this->db->prepare("INSERT INTO users(username,password, club)VALUES(?, ?, ?);");
$stmt->bind_param("sss", $newusername, $newpassword, $newclub);
if($stmt->execute()) {
echo "<h3 class='usercreated'>Användare skapad</h3>";
} else {
echo "<h3 class='usercreated'> Gick ej att skapa användare</h3>";
}
}
方法调整为
[
{"name": "l1", "type": "float", "mode": "nullable"},
{"name": "l2", "type": "float", "mode": "nullable"},
]
答案 4 :(得分:0)
为避免 classCalling.php 文件中的错误,请始终检查您尝试获取的POST值是否已设置。 检查以下代码
<?php
include("class/userClass.php");
include("class/pagesClass.php");
// Creating instance of the class userClass.php
$user = new User();
if(isset($_POST['username']) && isset($_POST['password']) && isset($_POST['newclub'])){
$username = $_POST['username'];
$password = $_POST['password'];
$newclub = $_POST['newclub'];
$hashpassword = sha1($newpassword);
$user->newUsers($newusername, $hashpassword, $newname);
}else{
// handle your request when POST parameters are missing.
}