Javascript 我需要帮助发送信息到我的服务器使用Ajax,PHP和mySQL,而不使用表单

Javascript 我需要帮助发送信息到我的服务器使用Ajax,PHP和mySQL,而不使用表单,javascript,php,jquery,mysql,Javascript,Php,Jquery,Mysql,我查阅的所有教程都只展示了如何使用表单来处理所有问题。我想避免使用表单。现在我有了Javascript代码,可以根据单击的内容映射我的答案,并生成一个警报中显示的数组。(最后,我不想让它处于警报状态,但我会将其保存在那里,直到我知道所有事情都在工作)但我想我已经让ajax将信息发送到服务器,但我不确定它是否工作。或者如何让php获取ajax信息并将其发送到服务器。我的服务器也连接良好。我正在发布我所有的当前代码。感谢您的帮助。即使你只是给我发了一个链接或者给我指出了正确的方向,那也太好了 我认为

我查阅的所有教程都只展示了如何使用表单来处理所有问题。我想避免使用表单。现在我有了Javascript代码,可以根据单击的内容映射我的答案,并生成一个警报中显示的数组。(最后,我不想让它处于警报状态,但我会将其保存在那里,直到我知道所有事情都在工作)但我想我已经让ajax将信息发送到服务器,但我不确定它是否工作。或者如何让php获取ajax信息并将其发送到服务器。我的服务器也连接良好。我正在发布我所有的当前代码。感谢您的帮助。即使你只是给我发了一个链接或者给我指出了正确的方向,那也太好了

我认为我最大的问题是如何使用Javascript生成的数组,然后在Ajax中调用,然后是Php。既然我已经创建了数组,那么我在Ajax中调用什么呢。那么如何用PDO治疗呢

CSS

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);
    }
    }); 

}); 
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";
   }

}