提问人:Alessio 提问时间:7/5/2023 最后编辑:Kiran ShahiAlessio 更新时间:7/5/2023 访问量:64
jQuery post id send 和 while-loop 白页
jQuery post id send and while-loop white page
问:
我是一名初级开发人员,使用 post 方法将带有 jQuery 的 id 发送到具有内部 while 循环模式的外部页面时遇到了问题。
这是我的jQuery调用,它将按钮单击的id发送到外部PHP页面,该页面通过while循环写入从MySQL数据库检索到的数据。
当我单击按钮时,将显示确认修改模式,然后如果单击模式的修改按钮,则在 div #container_ajax 中加载外部页面,并在最后一次切换(关闭)确认修改模式。
$(document).on("click", '.tasto-modifica-veicolo', function() {
var id = $(this).data('id');
$("#modal-preconferma-modifica").modal("toggle");
if ($("#btn_allow_mod_veicolo").on("click", function() {
$('#container_ajax').load("modifica_veicolo.php", "#container_ajax");
$.post({
type: "post",
url: "modifica_veicolo.php",
data: {
"id_modifica_veicolo": id
},
success: function() {
$("#modal-preconferma-modifica").modal("toggle");
},
});
}));
});
到这里所有工作都完成了,但外部页面加载了空白页。
在“预览”选项卡中打开开发人员控制台,页面将显示并与 while 循环完美配合,但在前端白页中。
如果在MySQL查询中我手动编写一个id ,而不是变量post,则当我使用jQuery调用时,代码可以完美运行。
是不是像外部URL页面没有收到帖子数据,而循环接收到一个没有id的变量空白来执行...但是在开发者预览选项卡中正确显示!
(include('config.php');有一个MySQL连接字符串。
需要“form-modifica-veicolo”格式来发送数据以更新查询。
<?php
include('config.php');
$id_modifica_veicolo = $_POST['id_modifica_veicolo'];
$query_veicolodamodificare="SELECT * FROM ws_veicoli WHERE ID = '$id_modifica_veicolo'";
$result_veicolodamodificare= $conn->query($query_veicolodamodificare);
while ($row_veicolo = $result_veicolodamodificare->fetch_assoc()){
?>
<div class='modal fade show d-block' id='modal_modifica_veicolo' tabindex='-1'>
<div class='modal-dialog modal-lg'>
<div class='modal-content'>
<div class='modal-header border-0'>
<h5 class='modal-title fw-bold'>Modifica veicolo</h5>
<button type='button' class='btn-close' data-bs-dismiss='modal' aria-label='Close'></button>
</div>
<div class='modal-body'>
<div class='col-12 d-flex flex-wrap flex-row'>
<form method='POST' id='form-modifica-veicolo'>
<div class='col-lg-4 col-12 p-1'>
<label>Targa</label>
<input name='targa' id='targa' value='$row_veicolo[Targa]' class='form-control mt-2 mb-2 rounded-5' type='text' maxlength='7' onkeyup='this.value = this.value.toUpperCase();'>
</div>
</form>
<div class='modal-footer border-0'>
<button type='button' class='btn' data-bs-dismiss='modal'>Annulla</button>
<button type='button' data-bs-toggle='modal' data-bs-target='#modal_modifica_veicolo' data-bs-dismiss='modal' class='btn btn-primary rounded-5'>Salva</button>
</div>
</div>
</div>
</div>
</div>
这是所有代码的一小部分......
在外部页面的MySQL查询中手动插入id,代码与jQuery调用完美配合。
如果我使用 jQuery 发送 id,则白页...
答:
0赞
mplungjan
7/5/2023
#1
您只想开机自检:
$(document).on("click", '.tasto-modifica-veicolo', function() {
var id = $(this).data('id');
$("#modal-preconferma-modifica").modal("toggle");
$("#btn_allow_mod_veicolo").on("click", function() {
$.post({
url: "modifica_veicolo.php",
data: {
"id_modifica_veicolo": id
},
success: function(data) {
$('#container_ajax').html(data); // but return only the content of the div
$("#modal-preconferma-modifica").modal("toggle");
},
});
});
});
测试
$(document).on("click", '.tasto-modifica-veicolo', function() {
var id = $(this).data('id');
console.log(id)
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button data-id='1' type='button' class='tasto-modifica-veicolo btn'><i class='fa-solid text-secondary fa-file-pen'></i>1</button>
<button data-id='2' type='button' class='tasto-modifica-veicolo btn'><i class='fa-solid text-secondary fa-file-pen'></i>2</button>
<button data-id='3' type='button' class='tasto-modifica-veicolo btn'><i class='fa-solid text-secondary fa-file-pen'></i>3</button>
评论
0赞
Alessio
7/5/2023
无事可做,如果我在MYSQL查询中手动插入id,所有工作都完成了,但如果发送就不起作用。
0赞
mplungjan
7/5/2023
然后你需要看看它是否正确。做一个console.log($(this).data('id'))
0赞
Alessio
7/5/2023
在控制台中,它显示“未定义”。
0赞
mplungjan
7/5/2023
因此,您需要查看该元素是否具有 data-id。我在任何地方都看不到该元素tasto-modifica-veicolo
0赞
Alessio
7/5/2023
这是调用函数的 while 循环表中的按钮:<button data-id='$row[ID]' type='button' class='tasto-modifica-veicolo btn'><i class='fa-solid text-secondary fa-file-pen'></i></button>
评论
if ($("#btn_allow_mod_veicolo").on("click",
可能不是你认为它可能会做什么。 - 完全删除 if()