Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否应该通过PHP将jQuery.post()函数转换为HTML?_Jquery_Jquery Post - Fatal编程技术网

是否应该通过PHP将jQuery.post()函数转换为HTML?

是否应该通过PHP将jQuery.post()函数转换为HTML?,jquery,jquery-post,Jquery,Jquery Post,我通过以下两个链接浏览了代码: 代码本身似乎很清楚,但我无法完全理解哪些代码块与哪些文件名相关联。基本上,我正在试图找到一个使用jQuery的post函数与PDO对象交互的最新指南,但我一直没有成功 如果我不能确定文件名应该是什么,我接下来计划做的是尝试转换/更新w3schools的一个示例。基本上,对于pastebin,我想我知道代码的前三段去哪里了,但是我不知道javascript应该放在靠近末尾的地方。在我贫民窟之前,我希望有人能看看我的代码。你能看到问题吗 -编辑- 我通过Chrome

我通过以下两个链接浏览了代码:

代码本身似乎很清楚,但我无法完全理解哪些代码块与哪些文件名相关联。基本上,我正在试图找到一个使用jQuery的post函数与PDO对象交互的最新指南,但我一直没有成功

如果我不能确定文件名应该是什么,我接下来计划做的是尝试转换/更新w3schools的一个示例。基本上,对于pastebin,我想我知道代码的前三段去哪里了,但是我不知道javascript应该放在靠近末尾的地方。在我贫民窟之前,我希望有人能看看我的代码。你能看到问题吗

-编辑- 我通过Chrome的控制台(浏览器中的
ctrl+shift+j
)注意到一个错误:
uncaughtsyntaxerror:Unexpected-token;encode.js:17
未捕获引用错误:$未定义encode.js:1

文件系统结构:

webroot/sitename/index.php
webroot/sitename/process_form.php
webroot/sitename/js/jquery-1.8.2.js
webroot/sitename/js/encode.js

index.php:

<!DOCTYPE html>
<html>
<head>
  <title>Tmp homepage</title>
  <script type="text/javascript" src="js/encode.js"></script>
  <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
</head>

<body>
<form id="ajform">
    <fieldset>
        <legend>jQuery.post Form Submit example</legend>
        <p>
            <label for="name">Name:</label></br />
            <input id="name" type="text" name="name" />
        </p>
        <p>
            <label for="email">email:</label></br />
            <input id="email" type="text" name="email" />
        </p>
        <p>
            <input type="submit" value="Submit" />
        </p>
    </fieldset>
</form>
<div id="post"></div>
</body>

</html>

Tmp主页
jQuery.post表单提交示例

名称:

电子邮件:

encode.js:

$(document).ready(
  $(function(){
      $("#ajform").submit(function(e){    
         e.preventDefault();  

          $.post("../process_form.php", $("#ajform").serialize(),
          function(data){
              if(data.email_check == 'invalid'){

                      $("#post").html("<div class='errorMessage'>Sorry " + data.name + ", " + data.email + " is NOT a valid e-mail address. Try again.</div>");
              } else {
                  $("#post").html("<div class='successMessage'>" + data.email + " is a valid e-mail address. Thank you, " + data.name + ".</div>");
                  }
          }, "json");    
      });

  });
)
$(文档)。准备好了吗(
$(函数(){
$(“#ajform”).submit(函数(e){
e、 预防默认值();
$.post(“../process_form.php”,$(“#ajform”).serialize(),
功能(数据){
如果(data.email\u check==‘无效’){
$(“#post”).html(“对不起”+data.name+,“+data.email+”不是有效的电子邮件地址。请重试。”);
}否则{
$(“#post”).html(“+data.email+”是有效的电子邮件地址。谢谢,“+data.name+”);
}
}“json”);
});
});
)
process_form.php:

<?php

$email_check = '';
$return_arr = array();

if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) || filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
   $email_check = 'valid';
}
else {
    $email_check = 'invalid';
}


$return_arr["email_check"] = $email_check;

if (isset($_POST['email'])){
    $return_arr["name"] = $_POST['name'];
    $return_arr["email"] = $_POST['email'];
}

echo json_encode($return_arr);
您的
未加载。返回404

并且,将
encode.js
放在jquery js之后

查看您引用的我的帖子中演示的源代码。它会帮你的


谢谢,顺便说一句。

使用文件名的工作代码:

index.php,位于
sitename/index.php

<!DOCTYPE html>
<html>
<head>
  <title>Tmp homepage</title>
  <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
  <script type="text/javascript" src="js/encode.js"></script>
</head>

<body>
<form id="ajform">
    <fieldset>
        <legend>jQuery.post Form Submit example</legend>
        <p>
            <label for="name">Name:</label></br />
            <input id="name" type="text" name="name" />
        </p>
        <p>
            <label for="email">email:</label></br />
            <input id="email" type="text" name="email" />
        </p>
        <p>
            <input type="submit" value="Submit" />
        </p>
    </fieldset>
</form>
<div id="post"></div>
</body>

</html>
encode.js,位于
sitename/js/encode.js
(使用jQuery 1.8.2.min.js):

$(文档)。准备好了吗(
$(函数(){
$(“#ajform”).submit(函数(e){
e、 预防默认值();
$.post(“../process_form.php”,$(“#ajform”).serialize(),
功能(数据){
如果(data.email\u check==‘无效’){
$(“#post”).html(“对不起”+data.name+,“+data.email+”不是有效的电子邮件地址。请重试。”);
}否则{
$(“#post”).html(“+data.email+”是有效的电子邮件地址。谢谢,“+data.name+”);
}
}“json”);
});
})
)

我在你的网站上找不到
js/encode.js
。你的脚本标签错了。src属性应该是
/js/encode.js
,而不是
encode.js
@slashingweapon谢谢。已经修好了。这是一个链接:encode.js中存在语法错误。有关详细信息,请查看浏览器控制台。@slashingweapon我也捕捉到了这些信息。试图在谷歌上找到类似的问题。似乎我需要在编码脚本之前列出jQuery脚本。由于复制/粘贴错误,我只是错误地保存了一份糟糕的草稿。更改现在已在服务器上提交。新链接是
js/encode.js
。谢谢。@Wolfpack'08的答案已更新。把你的脚本按正确的顺序排列。是的,这就是我读过的教程。这是毒品。我看到了演示,但由于我犯的错误,它无法在我的系统上运行,您在回答中提到了这个错误(.js脚本的出现顺序)。如果您访问我发布的ajform站点,您可以看到我已经修复了错误。我很快会在问题中提出一个错误。
<?php

$email_check = '';
$return_arr = array();

if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) || filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
   $email_check = 'valid';
}
else {
    $email_check = 'invalid';
}


$return_arr["email_check"] = $email_check;

if (isset($_POST['email'])){
    $return_arr["name"] = $_POST['name'];
    $return_arr["email"] = $_POST['email'];
}

echo json_encode($return_arr);
$(document).ready(
  $(function(){
      $("#ajform").submit(function(e){    
         e.preventDefault();  

          $.post("../process_form.php", $("#ajform").serialize(),
          function(data){
              if(data.email_check == 'invalid'){

                      $("#post").html("<div class='errorMessage'>Sorry " + data.name + ", " + data.email + " is NOT a valid e-mail address. Try again.</div>");
              } else {
                  $("#post").html("<div class='successMessage'>" + data.email + " is a valid e-mail address. Thank you, " + data.name + ".</div>");
                  }
          }, "json");    
      });

  })
)