AJAX / PHP发送值服务器(AJAX/PHP send values to server)

2019-07-30 08:51发布

我试图使用AJAX值发送到PHP文件,然后在服务器上更新MySQL数据库。 但由于某些原因的值不会转移到PHP文件。

这是我用的是JS:

function send_message()
{

 var number = localStorage.getItem("number");
  var message = prompt("Message:", "");
   jQuery.ajax({ type: "POST", 
url: serviceURL + "message.php", 
data: 'number='+number+'&message='+message,
cache: false, 
success: function(response) 
{
alert("message sent");
}
});


}

这是message.php

    <?php
include 'config.php';

// database connection
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);

// new data

$number = $_GET['number'];
$message = $_GET['message'];
// query
$sql = "INSERT into table
        SET condition=0, change=1, change_time=NOW(), recieve=999, 
        number=?, message=?";
$q = $conn->prepare($sql);
$q->execute(array($number, $message));


?>

否则插入除了数量和消息mysql的一切都是空。 可能是什么原因呢?

Answer 1:

您发布使用POST AJAX数据。 为了监听PHP中的这些值,你需要...

更换:

$number = $_GET['number'];
$message = $_GET['message'];

附:

$number = $_POST['number'];
$message = $_POST['message'];


Answer 2:

为了让事情变得更简单只需使用像$。员额或jQuery中的Ajax调用$。获得一个方便的方法:

function send_message()
{

  var number = localStorage.getItem("number");
  var message = prompt("Message:", "");
  $.post(serviceURL + "message.php", {'number' : number, 'message' : message},
         function(response){
           alert("message sent");      
         }
  );

}

然后在你的PHP:

 // database connection $conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass); //if you used $.get you will also have to use $_GET here $number = $_POST['number']; $message = $_POST['message']; // query $sql = "INSERT into table SET condition=0, change=1, change_time=NOW(), recieve=999, number=?, message=?"; $q = $conn->prepare($sql); $q->execute(array($number, $message)); ?> 

我可以看到,您使用的是PDO准备语句。 但你也可能需要添加:

过滤瓦尔和滤波输入额外的安全性。



Answer 3:

使用$_POST而不是$_GET 。 此外,您还可以尝试使用$_REQUEST全局数组忘掉它。 它具有所有已发送给脚本的数据。



Answer 4:

你可以改变你的PHP文件;

<?php
include 'config.php';
// database connection
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
// new data
$number = $_POST['number'];
$message = $_POST['message'];
// query
$sql = "INSERT into table
        SET condition=0, change=1, change_time=NOW(), recieve=999, 
        number=?, message=?";
$q = $conn->prepare($sql);
$q->execute(array($number, $message));
?>


文章来源: AJAX/PHP send values to server