使用AJAX问题将数据提交给PHP

时间:2018-05-29 15:03:31

标签: php jquery ajax submit

我有一个网站,我有两个值,我想提交给PHP脚本。我希望每当用户执行特定操作时都会发生这种情况。它必须是“沉默的”,因为它只需要在后台运行,因此我想将它从AJAX提交给PHP。 我有一个代码,似乎是正确的,但不知何故不起作用。 我使用过这行

success: function () {
                        alert('data was submitted');
                    }

要检查是否提交了数据,但是没有达到此数据,因为警报未显示。

HTML / Ajax

<!DOCTYPE html>
<html lang="en">

  <head>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
        <script>
        function ch() {

            var customID = document.getElementById('hiddenCustomerValue').innerHTML;    
            var customEmail = document.getElementById('customerEmail').innerHTML;   
            var dataString = 'customID='+customID+'&customEmail='+customEmail;

            $.ajax({
                    type:"POST",
                    url: "testSilence.php",
                    data:dataString,
                    cache: false,
                    success: function () {
                        alert('data was submitted');
                    }
            });
            return false;
        }
    </script>

  </head>

  <body>

       <p id="hiddenCustomerValue" style="color:white;">customerKeyID</p>
       <p id="customerEmail" style="color:white;">test</p>
       <button id="send_btn" onclick="ch()">Submit</button>

 </body>

PHP

<?php

$customerID = $_POST['customID'];
$customerEmail = $_POST['customEmail'];

?>

1 个答案:

答案 0 :(得分:1)

为了按照我的评论中的建议将其标记为已回答,请删除数据字符串中正在传递的空格,因为这会更改密钥在服务器端所代表的内容。

正如我最早的评论中所建议的那样,最好使用一个对象:

data: {
    'key' : 'val',
    'key2' : 'val-2'
}

在您的实例中,它将是:

data : {
    'customID' : customID,
    'customEmail' : customEmail
}

注意:关于您的PHP代码,我肯定会在那里进行一些验证,以确保使用issetempty和{{传递数据3}}以及您认为合适的其他验证。 请记住,请求可以被欺骗