Javascript 如何将PHP行记录插入AJAX url
我可以将Javascript 如何将PHP行记录插入AJAX url,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我可以将update.php?id=“.$row[“id”]”插入AJAX url吗? 我正在尝试通过表单进行异步sql行更新。我没有特定的id,因为id是在单击时调用的 JS submit.on('click', function(e) { e.preventDefault(); if(validate()) { $.ajax({ type: "POST",
update.php?id=“.$row[“id”]”插入AJAX url吗?
我正在尝试通过表单进行异步sql行更新。我没有特定的id,因为id是在单击时调用的
JS
submit.on('click', function(e) {
e.preventDefault();
if(validate()) {
$.ajax({
type: "POST",
url: 'update.php?id=" . $row["id"] . "',
data: form.serialize(),
dataType: "json"
}).done(function(data) {
if(data.success) {
id.val('');
cas.val('');
info.html('Message sent!').css('color', 'green').slideDown();
} else {
info.html('Could not send mail! Sorry!').css('color', 'red').slideDown();
}
});
}
});
PHPupdate.PHP调用的位置
$sql3 = "
SELECT id, potnik_id, ura, naslov
FROM prevoznik
ORDER BY HOUR(ura), MINUTE(ura) ASC;
";
$result = $conn->query($sql3);
$potnik = $row["potnik"];
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
//Spremenjena oblika datuma
$date = date_create($row["ura"]);
$ura_pobiranja = date_format($date,"H:i");
echo "<div class=\"row list divider-gray\">
<div class=\"col-1 fs-09 fw-600\">" . $row["id"] . " </div>
<div class=\"col-3 flex-vcenter-items fw-600 fs-09\">" . $row["naslov"] . " </div>
<div class=\"col-1 flex-vcenter-items fw-600 fs-09\">$ura_pobiranja</div>
";
if ($row["naslov"] !== null) {
echo " <div class=\"col-6 flex-vcenter-items fs-1\">Nastavi uro<form id='form' action='update.php?id=" . $row["id"] . "' method='POST'><input id='id' name='potnik' value='".$row["id"]."' type='hidden' /> <input id='cas' class=\"form-control fancy-border\" type=\"text\" name=\"posodobljeni_cas\"/><input id='submit' type='submit' value='Posodobi'> <label id=\"info\"></label></form></div>";
echo " </div>";
}
else {
echo " </div>";
}
}
} else {
echo "<div class=\"col flex-vcenter-items fw-100 fs-1\"><i class=\"far fa-frown-open pr-3\"></i>Nimaš še nobenih opravil
</div>";
}
$sql3=”
选择id、potnik_id、ura、naslov
来自普雷沃兹尼克
按小时(市建局)、分钟(市建局)ASC排序;
";
$result=$conn->query($sql3);
$potnik=$row[“potnik”];
如果($result->num_rows>0){
//每行的输出数据
而($row=$result->fetch_assoc()){
//斯普雷门耶纳·奥比卡·达图马
$date=date\u create($row[“ura”]);
$ura_pobiranja=日期格式($date,“H:i”);
回声“
“$row[“id”]”
“$row[“naslov”]”
$ura_pobiranja
";
如果($row[“naslov”]!==null){
回声“纳斯塔维乌罗”;
回声“;
}
否则{
回声“;
}
}
}否则{
echo“Nimaše nobenih opravil
";
}
您可以分配PHP$行['id'];变量添加到本地JS变量,并将其附加到URL,如下所示-
submit.on('click', function(e) {
e.preventDefault();
if(validate()) {
var id=<?=$row['id'];?>;
$.ajax({
type: "POST",
url: 'update.php?id='+id,
data: form.serialize(),
dataType: "json"
}).done(function(data) {
if(data.success) {
id.val('');
cas.val('');
info.html('Message sent!').css('color', 'green').slideDown();
} else {
info.html('Could not send mail! Sorry!').css('color', 'red').slideDown();
}
});
}
});
submit.on('click',函数(e){
e、 预防默认值();
if(validate()){
变量id=;
$.ajax({
类型:“POST”,
url:'update.php?id='+id,
数据:form.serialize(),
数据类型:“json”
}).完成(功能(数据){
if(data.success){
id.val(“”);
cas.val(“”);
info.html('messagesent!').css('color','green').slideDown();
}否则{
info.html('无法发送邮件!抱歉!').css('color','red').slideDown();
}
});
}
});
首先,您需要修复大量HTML。对于各种HTML元素,有许多重复的ID属性。这将导致许多JavaScript问题,并且对于HTML来说是不正确的语法
$html = ""
$id = $row['id'];
if ($row["naslov"] !== null) {
$html .= "<div class='col-6 flex-vcenter-items fs-1'>\r\n";
$html .= "\tNastavi uro\r\n";
$html .= "\t<form id='form-$id' action='update.php?id=$id' method='POST' data-id='$id'>\r\n";
$html .= "\t\t<input id='cas-$id' class='form-control fancy-border' type='text' name='posodobljeni_cas' />\r\n";
$html .= "\t\t<input id='submit-$id' type='submit' value='Posodobi'> <label id='info-$id'></label>\r\n";
$html .= "\t</form>\r\n</div>\r\n";
$html .= "</div>";
echo $html;
} else {
echo " </div>";
}
有关选择器的详细信息:
无法对此进行测试,因为您尚未提供测试区域。希望有帮助。最好在HTML中插入$row['id']
值,以便jQuery可以读取它。因此jQuery可以从操作
读取它,或者您可以在HTML中的某个地方添加数据id='{$row['id']}'
。然后jQuery就可以从中准备.data(“id”)
。@Twisty您能提供一个HTML数据atribute的示例吗。我仍然需要使用javascript将所选id插入HTML数据中,但无法提供示例,但可以提出一些建议。在将来,请提供一个更完整和可验证的示例。这是忽略update.php?id=“.$row[“id”]”。最后选择的id。除了将php变量分配给js变量id之外,还有其他方法吗?Javascript使用+来附加文本/字符串,而不是“.”我知道我不能在Javascript中使用php语法,但是我的IDE检测到您的答案为react,并且在运行脚本时被拒绝。如果您想将PHP直接附加到URL-URL:'update.PHP?id='+,我建议放弃所有\t
和\r\n
。。。因为这些是不必要的空白。大多数浏览器开发工具在查看元素时都会使用漂亮的html格式;)在某些情况下,根据css/样式,这些空白字符将导致2像素的间距。@难以置信这是真的,但我认为格式对HTML仍然很重要。是的,大多数开发工具将正确格式化HTML。另外,如果一个小的空白导致了CSS问题,你需要在CSS上工作更多。当它在某些浏览器中是额外空白的产物时,那么最干净的解决方案就是去除这种不必要的空白的污点:)加上,字节人!它的额外字节!拯救互联网!lol@IncredibleHat优先级和目标,你说的没错,删去不必要的空白将使文档变小,并使其加载更快。我在做我该做的吗??lol我还想在我的示例代码中强调一些基本标准,其中原始代码缺少很多。耸肩
$(function(){
$("form[id|='form']").on('submit', function(e) {
e.preventDefault();
var form = $(this);
var id = form.data("id");
var cas = $("inptu[id|='cas']", form);
var info = $("input[id|='info']", form);
if(validate()) {
$.ajax({
type: "POST",
url: form.attr("action"),
data: form.serialize(),
dataType: "json"
}).done(function(data) {
if(data.success) {
id.val('');
cas.val('');
info.html('Message sent!').css('color', 'green').slideDown();
} else {
info.html('Could not send mail! Sorry!').css('color', 'red').slideDown();
}
});
}
});
});