У меня возникли проблемы с отправкой данных в обрабатываемый файл php. Я пробовал практически все, но не могу найти источник проблемы. Ниже приведен php-файл, который отправляет имя продукта, цену и идентификатор функции checkout
после того, как пользователь нажимает кнопку ..Как получить данные POST в php-файл с помощью AJAX
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "Test";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT P1.Product_Name, S2.Price, P1.Product_ID FROM Product P1, Sale_Item S2 WHERE P1.Product_ID=S2.Product_ID AND P1.Category='Sports'";
$res = $conn->query($sql);
$counter=0;
while ($row = $res->fetch_assoc()){
$Product_Name = $row["Product_Name"];
$Price = $row["Price"];
$Product_ID = $row["Product_ID"];
echo ('<td><p></p>'.$row["Product_Name"].'<br>'.$row["Price"].'<p></p><input type="button" value="Buy" onclick="checkout(\'' . $Product_Name . '\', \'' . $Price . '\', \'' . $Product_ID . '\')"</td>');
$counter++;
if ($counter==3) {
$counter=0;
print "<br>";
}
}
$conn->close();
?>
И следующая функция checkout
:
<script type="text/javascript">
function checkout(Product_Name, Price, Product_ID) {
//document.write(Product_Name, Price, Product_ID)
var theProduct_Name = Product_Name;
var thePrice = Price;
var theProduct_ID = Product_ID;
$.ajax({
type: "POST",
url: "http://localhost:8888/checkout.php",
data: {Product_Name: theProduct_Name, Price: thePrice, Product_ID: theProduct_ID},
});
window.location.assign("http://localhost:8888/checkout.php")
}
</script>
Я использую базу данных MAMP в PhpMyAdmin в. Неверен ли мой URL? Я пробовал использовать "http://localhost:8888/checkout.php"
и только checkout.php
. Ниже приведен файл php, где мне нужно обрабатывать данные. Чтобы просто узнать, как отправлять данные, я просто повторяю внутри файла, чтобы убедиться, что он действительно опубликован. Но ничего не повторяет.
<?php
session_start();
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "Test";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$theProduct_Name = $_POST['Product_Name'];
$theProduct_ID = $_POST['Product_ID'];
$thePrice = $_POST['Price'];
echo $theProduct_Name.$theProduct_ID.$thePrice;
?>
Я новый пользователь для веб-программирования, поэтому любая помощь или советы будут оценены. Я рассматриваю это часами и не могу заставить его работать.
Вы не должны ожидать, чтобы увидеть что-нибудь эхо путем вызова URL действия непосредственно. Вы отправляете Ajax и возвращаете обратно ответ. –
@MateHegedus Лучше будет использовать форму, которая напрямую отправляет данные в php-файл, вместо того, чтобы сначала отправлять его функции, а затем использовать AJAX? – Sam5487
@NMoeini Я знаю, но когда я вызываю 'window.location.assign (' "http: // localhost: 8888/checkout.php" ')' после возвращения ajax, не следует ли повторять эхо-данные? – Sam5487