javascript - Ajax不会向php表单发起POST请求

标签 javascript php jquery ajax forms

由于某种原因,我的表单无法发布,有什么想法可以解释为什么吗(我已经知道我的服务器上的其他所有内容都可以运行)?代码如下:

PHP

    <?php
if(isset($_POST['field1']) && isset($_POST['field2'])) {
$data = $_POST['field1'] . '-' . $_POST['field2'] . "<br>";
$ret = file_put_contents('user.txt', $data, FILE_APPEND | LOCK_EX);
if($ret === false) {
    die('There was an error writing this file');
}
}
?>
<小时/>

https://pastebin.com/hHeMD4Mq

<小时/>

HTML/AJAX JS

<小时/>
<form id ="form">
<p>Name:</p>
<input name="field1" type="text" id ="name" />
<h3>&nbsp;</h3>
<p>Message:</p>
<textarea name="field2" type="text" id ="message"></textarea><br/>
<button onclick="pos();">reply</button>
</form>
</td>
</table>
</div>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script type="text/javascript">
function pos(){
var values=$("form").serialize();
$.post('form.php', values, function(response) {
    console.log("Response: "+response);
});}
</script>
<小时/>

https://pastebin.com/eAVE8EGS

<小时/>

我网站上的演示:

jakesandbox.com/dnd/

(上面未提供的任何信息将根据评论中的要求提供)

最佳答案

问题是您的按钮实际上正在提交表单(这本质上是重新加载页面,因为它正在向自身提交)。您需要执行以下两件事之一:

  1. 将按钮更改为 type="button" 以防止其提交(表单元素内的按钮 automatically 成为提交按钮):
<button type="button" onclick="pos();">reply</button>
  • 阻止点击操作发生(从而阻止提交):
  • <button type="button" onclick="pos(event);">reply</button>
    <script type="text/javascript">
    function pos(e){
    e.preventDefault();
    var values=$("form").serialize();
    $.post('form.php', values, function(response) {
        console.log("Response: "+response);
    });}
    </script>
    

    -或-

    <button type="button" onclick="pos(); return false;">reply</button>
    

    关于javascript - Ajax不会向php表单发起POST请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52865588/

    相关文章:

    javascript - 使用 JQuery 将 JSON 数组数据的选择打印到页面

    JavaScript 正则表达式仅校验数字

    php - 存储国家代码而不仅仅是国家名称本身有哪些实际优势?

    javascript - 用于 Facebook 共享的 Open Graph 选择了错误的图像

    php - JavaScript 从 iframe 获取浏览器中的 URL

    javascript - 在 DIV 元素中加载 javascript 效果

    javascript - 检测正则表达式中多次出现非空白的正确方法是什么?

    javascript - 在 Angular 中使用单击事件处理多个组件

    javascript - 使用处理js设置掩码时未定义的属性

    php - PHP - MySQL 脚本非常慢