Javascript 我需要帮助发送信息到我的服务器使用Ajax,PHP和mySQL,而不使用表单
我查阅的所有教程都只展示了如何使用表单来处理所有问题。我想避免使用表单。现在我有了Javascript代码,可以根据单击的内容映射我的答案,并生成一个警报中显示的数组。(最后,我不想让它处于警报状态,但我会将其保存在那里,直到我知道所有事情都在工作)但我想我已经让ajax将信息发送到服务器,但我不确定它是否工作。或者如何让php获取ajax信息并将其发送到服务器。我的服务器也连接良好。我正在发布我所有的当前代码。感谢您的帮助。即使你只是给我发了一个链接或者给我指出了正确的方向,那也太好了 我认为我最大的问题是如何使用Javascript生成的数组,然后在Ajax中调用,然后是Php。既然我已经创建了数组,那么我在Ajax中调用什么呢。那么如何用PDO治疗呢 CSS HTMLJavascript 我需要帮助发送信息到我的服务器使用Ajax,PHP和mySQL,而不使用表单,javascript,php,jquery,mysql,Javascript,Php,Jquery,Mysql,我查阅的所有教程都只展示了如何使用表单来处理所有问题。我想避免使用表单。现在我有了Javascript代码,可以根据单击的内容映射我的答案,并生成一个警报中显示的数组。(最后,我不想让它处于警报状态,但我会将其保存在那里,直到我知道所有事情都在工作)但我想我已经让ajax将信息发送到服务器,但我不确定它是否工作。或者如何让php获取ajax信息并将其发送到服务器。我的服务器也连接良好。我正在发布我所有的当前代码。感谢您的帮助。即使你只是给我发了一个链接或者给我指出了正确的方向,那也太好了 我认为
姓名:
提交
绝对:
// $(document).on("eventOfYourChoice", function() {
// you probably actually want to do:
$('#btn-show').click(function() {
$.ajax({
type: "POST",
url: "/path/to/script.php",
data: {
"name" : $('input[name="name"]').val(),
"answers" : answers
},
success: function(response){
alert(response);
}
});
});
response
变量包含PHP呼出的内容--
但是,在您发布的代码中有几点需要注意-
1) 。筛选并验证您的输入:
if (is_string($_POST['name']){
$name = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
} else { die("That input is not valid"); }
2) 。使用mysqli_*函数或PDO——或者,您可以使用类似ORM/DBA的
3) 。在您的JS-$(文档)中.ready(function(){…
和$(function()
是同一件事。您只需要一个
4) 。您几乎总是希望在任何其他脚本之前包含jQuery,但除非javascript.js
包含jQuery代码(即任何开头的代码),否则不必这样做
---编辑--
早些时候,我忽略了“答案”值——但是,由于您有图像,我假设您希望按照以下思路做一些事情:
希望这对您有所帮助-!您可以只使用ajax而不使用表单
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<input type="text" id="name">
<input type="submit" id="submit" value="submit">
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var name = $('#name').val();
$('#submit').click(function(){
$.post('validate.php', {name:name}, function(data){
alert(data);
});
});
});
</script>
</body>
</html>
此页面的输出将在index.php中发出警报。我在您的javascript中没有看到任何ajax请求。我想可能是我偶然将我的php代码误认为ajax而忘记了它。我现在将处理这一部分。请确保您将有关单击哪个元素的信息从
click
函数传递给另一个函数s、 如果你使用ajax,你不需要表单。但是有一个表单是服务器端验证所必需的。服务器端验证也不需要表单……我想你忘了在“沿着这些线”后面加上一些东西了.我现在把answers变量作为数组,实际上,我忘了把它去掉…只要数组填充正确,那么这应该是一个合适的答案。如果需要详细说明,请告诉我,其他地方!您好。我按照您的建议做了,但谷歌给了我一个错误“uncaughtreferenceerror:answers未定义”在ajax的“answers”:answers部分中,在进行ajax调用之前,您的answers
数组没有得到定义---answers数组应该包含什么?
<html>
<head>
<LINK REL=StyleSheet HREF="code.css" TYPE="text/css">
<script type="text/javascript" src="javascript.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<form>
Name:
<input type="text" name="name">
</form>
<img src="https://i.imgur.com/7HyU4yh.jpg" id="seasoning" data-value="0">
<br>
<img src="https://i.imgur.com/OEHCjCK.jpg" id="seasoning" data-value="1">
<br>
<button id="btn-show">Submit</button>
</body>
</html>
// $(document).on("eventOfYourChoice", function() {
// you probably actually want to do:
$('#btn-show').click(function() {
$.ajax({
type: "POST",
url: "/path/to/script.php",
data: {
"name" : $('input[name="name"]').val(),
"answers" : answers
},
success: function(response){
alert(response);
}
});
});
if (is_string($_POST['name']){
$name = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
} else { die("That input is not valid"); }
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<input type="text" id="name">
<input type="submit" id="submit" value="submit">
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var name = $('#name').val();
$('#submit').click(function(){
$.post('validate.php', {name:name}, function(data){
alert(data);
});
});
});
</script>
</body>
</html>
if(isset($_POST['name'])){
//do things with database
if(//success){
echo "success";
}else{
echo "failure";
}
}