Javascript Php没有正确接收我表单中的数据
我使用Ajax将表单的值发送到php文件,并将其插入数据库,具体取决于执行url的按钮的操作, 在本例中是insert_shirt.php,但它似乎不起作用,因为它不会发送表单中的数据,就像表单完全为空一样 HTMLJavascript Php没有正确接收我表单中的数据,javascript,php,html,ajax,Javascript,Php,Html,Ajax,我使用Ajax将表单的值发送到php文件,并将其插入数据库,具体取决于执行url的按钮的操作, 在本例中是insert_shirt.php,但它似乎不起作用,因为它不会发送表单中的数据,就像表单完全为空一样 HTML <form method="post" id="form_shirt"> ID: <br> <input type="hidden" name="id_shirt" id="id_shirt" class="form-control">
<form method="post" id="form_shirt">
ID:
<br>
<input type="hidden" name="id_shirt" id="id_shirt" class="form-control"> Name:
<br>
<input type="text" name="name_shirt" id="name_shirt" class="form-control" required="required"> Price:
<br>
<input type="text" name="price_shirt" id="price_shirt" class="form-control" required="required">
<button id="insert_shirt" class="submit" name="btninsert">INSERT</button>
</form>
PHP
<?php
$connect = mysqli_connect("localhost", "root", "", "shirts");
$output = '';
$name_shirt = mysqli_real_escape_string($connect, $_POST["name_shirt"]);
$price_shirt = mysqli_real_escape_string($connect, $_POST["price_shirt"]);
$query = "INSERT into shirts ( name, price)
VALUES ('$name_shirt','$price_shirt') ";
if(mysqli_query($connect, $query))
{
$output .= '<label class="text-success">Data Inserted</label>';
$select_query = "SELECT id_shirt, name, price FROM shirts";
$result = mysqli_query($connect, $select_query);
$output .= '
<table id="shirts" class="table table-bordered">
<thead>
<tr>
<th>ID</th>
<th>NAME</th>
<th>PRICE</th>
</tr>
</thead>
';
while($row = mysqli_fetch_array($result))
{
$output .= '
<tr>
<tbody>
<td>' . $row["id_shirt"] . '</td>
<td>' . $row["name"] . '</td>
<td>' . $row["price"] . '</td>
</tr>
</tbody>
';
}
$output .= '</table>';
}
echo $output;
?>
SetcontentType:“application/x-www-form-urlencoded;charset=UTF-8”
,如果您的请求中未包含该值,则该值为默认值。您正在将其设置为false
,这可能是您的$\u POST
无法看到您的表单数据的原因。设置contentType:“application/x-www-form-urlencoded;charset=UTF-8”
,如果您没有将其包含在请求中,这是默认值。您正在将其设置为false
,这可能是您的$\u POST
无法看到表单数据的原因。尝试使用类似于以下的ajax.POST方法
并确保在表单标记中包含action=“{your php file}”
$(document).ready(function() {
$('.submit').on("click", function() {
var id = $('#id_shirt').val();
var name = $('#name_shirt').val();
var price = $('#price_shirt').val();
$.post("{your php file}",
{
id_shirt: id,
name_shirt: name,
price_shirt: price,
},
function(data,status){
$('#form_shirt')[0].reset();
$('#table_shirt').html(data);
});
});
});
});
这里是指向ajax.post和.get的w3手册的链接
试着像这样使用ajax.post方法
并确保在表单标记中包含action=“{your php file}”
$(document).ready(function() {
$('.submit').on("click", function() {
var id = $('#id_shirt').val();
var name = $('#name_shirt').val();
var price = $('#price_shirt').val();
$.post("{your php file}",
{
id_shirt: id,
name_shirt: name,
price_shirt: price,
},
function(data,status){
$('#form_shirt')[0].reset();
$('#table_shirt').html(data);
});
});
});
});
这里是指向ajax.post和.get的w3手册的链接
我记得看到您发布了一个与此源代码相关的问题,但我也注意到在您之前的问题中,php文件名有所不同。这里您使用的是insert\u shirt.php
,但在前面的问题中,您使用的是insert\u shirts.php
,因此我想知道,如果在文件名insert\u shirts.php中缺少s,这可能是一个简单的打字错误吗?当您发出此请求时,您在Chrome developer中看到了什么。这是一个POST请求,但您发送的数据格式为id\u shirt=&name\u shirt=12.99&price\u shirt=shirt,这是您通常通过GET请求发送的格式。只是好奇。@JarekKulikowski所以。。如果我改变了所有的POST请求,那么它应该可以工作吗?你可以试试。如果服务器正在接收请求并且期望GET,那么它应该。啊,等等。在你的PHP代码中,你期待着一篇文章。也许如果你把它改为_GET.@NewToJS,那是因为当我发布我的问题时,我试图简化代码,也许我无意中删除了一个sI,记得看到你发布了一个与此源代码相关的问题,但我也注意到在你之前的问题中,php文件名是不同的。这里您使用的是insert\u shirt.php
,但在前面的问题中,您使用的是insert\u shirts.php
,因此我想知道,如果在文件名insert\u shirts.php中缺少s,这可能是一个简单的打字错误吗?当您发出此请求时,您在Chrome developer中看到了什么。这是一个POST请求,但您发送的数据格式为id\u shirt=&name\u shirt=12.99&price\u shirt=shirt,这是您通常通过GET请求发送的格式。只是好奇。@JarekKulikowski所以。。如果我改变了所有的POST请求,那么它应该可以工作吗?你可以试试。如果服务器正在接收请求并且期望GET,那么它应该。啊,等等。在你的PHP代码中,你期待着一篇文章。也许如果你把它改为_GET.@NewToJS,那是因为当我发布我的问题时,我试图简化代码,也许我无意中删除了一个关于你答案的标记,但在我添加了这个标记后,仍然发生同样的事情,它不会插入:/Look-at-Dev-tools->Network选项卡。您看到您的请求到达服务器了吗?是的,请求正在到达服务器,它向我显示状态200OK,现在尝试var\u dump($\u POST)
。在开发工具网络选项卡上,查看请求响应。它应该显示我在开发工具网络选项卡中发送的值?因为在我尝试使用var\u dump($\u POST)
之后,我看到的唯一一件事与之前一样,名称:insert\u shirt.php,状态:200键入:xhrtanks以获取答案,但在我添加了仍然发生同样事情的内容后,它不会插入:/Look at Dev tools->Network选项卡。您看到您的请求到达服务器了吗?是的,请求正在到达服务器,它向我显示状态200OK,现在尝试var\u dump($\u POST)
。在开发工具网络选项卡上,查看请求响应。它应该显示我在开发工具网络选项卡中发送的值?因为在我尝试使用var\u dump($\u POST)
之后,唯一显示给我的是与之前相同的东西,名称:insert\u shirt.php,状态:200 type:xhr