|
|
|
สอบถามการใช้ sweetalert+func เรื่อง confirmalert รบกวนผู้รู้ด้วยนะครับ |
|
|
|
|
|
|
|
Code (JavaScript)
<script>
function confirmalert() {
document.querySelector('#form').addEventListener('submit', function(e) {
var form = this;
e.preventDefault(); // <--- prevent form from submitting
swal({
title: "",
text: "ตรวจสอบข้อมูลให้ถูกต้อง ?",
icon: "warning",
buttons: [
'ยกเลิก',
'บันทึก'
],
dangerMode: true,
}).then(function(isConfirm) {
if (isConfirm) {
form.submit(); // <--- submit form programmatically
} else {
swal("ยกเลิกการบันทึก !" , "กลับสู่หน้าแก้ไข", "error");
}
})
});
}
</script>
พอดีใชเโค้ดตัวนี้อยู่ครับ ใช่สำหรับปุ่มแบบformไปอีกหน้า
แต่ผมอยากให้มันใช่กับปุ่มแบบรูปภาพ คลิกปุ่มแล้วแสดงเลือก
แบบนี้ครับ มันใช้ได้แค่กับปุ่ม submit
เลยอยากได้แบบภาพครับ
พอเอาโค้ดนี้ไปใช้รวมกันแล้วมันไม่เบรกให้อยู่หน้าเลือก
อยากทราบว่าพอใชเfunctionตัวไหนได้บ้างครับ หรือมีโค้ดแนะนำบอกด้วยนะครับ
Tag : PHP, JavaScript, Action Script, jQuery
|
|
|
|
|
|
Date :
2018-09-19 08:05:42 |
By :
benzkung53 |
View :
10055 |
Reply :
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (isConfirm.value) { ควรอ้างอิง .value ให้เคยชิน อาจมีผลกับการทำงาน ได้
ลองใช้เครื่องมือ debug ดูครับว่ามันหลุดตรงไหน swal code ก็โอเคอยู่ครับ
ปล. ใช้ jquery หรือเปล่าครับ ถ้าใช้ jqueryอยู่ ก็เปลี่ยนโค๊ดไปใช้ jquery ดีกว่าครับ
อย่าเขียน pure javascript เลยครับ เหนื่อย (แต่ pure javascript มันก็มีข้อดีที่มันไม่หนัก ไม่เปลือง bandwidth)
|
ประวัติการแก้ไข 2018-09-19 10:52:02
|
|
|
|
Date :
2018-09-19 10:48:08 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<button type="submit" onclick="confirmalert();">
สีแดงเปลี่ยน type="button" ครับ
แบบนี้ มัน เข้า submit เลยครับ เลยหลุด onclick
อีกนิด เอา tag a ออกจาก button ครับ มันตีกัน อีรุงตุงนังไปหมด
Code (PHP)
<script>
function confirmalert(e) {
e.preventDefault();
var frm = e.target.form;
swal({
title: "",
text: "ตรวจสอบข้อมูลให้ถูกต้อง ?",
icon: "warning",
buttons: ['ยกเลิก','บันทึก'],
dangerMode: true,
}).then(function(isConfirm) {
if (isConfirm) {
frm.submit(); // <--- submit form programmatically
} else {
swal("ยกเลิกการบันทึก !" , "กลับสู่หน้าแก้ไข", "error");
}
})
}
</script>
<button type="button" onclick="confirmalert( event );"><img src='imgsys/edit.png' width='30' height='30' /></button>
<a href="<?="student_edit.php?id=$cols[0]"?>"> ตรงนี้จะทำอะไร
กดครั้งเดียวจะให้ทำอะไรบ้าง โยกมันเข้าไปอยู่ใน function เดียวกันครับ
|
ประวัติการแก้ไข 2018-09-19 19:23:40 2018-09-19 19:32:56 2018-09-19 19:34:04 2018-09-19 19:36:26
|
|
|
|
Date :
2018-09-19 19:21:12 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
งั้นก็ต้องเปลี่ยน วิธีการ submit ไม่ใช้ form ส่ง แต่ใช้ ajax ในการส่ง เพื่อที่จะกลับมาหน้าเดิมได้
หรือ ไฟล์ที่รับฟอร์ม ไปทำงานพอทำงานเสร็จ ข้อมูลก็มาครบหมด ก็ให้ แสดงข้อมูล ชุดนั้น ใหม่อีกครั้งได้เลย
|
|
|
|
|
Date :
2018-09-20 00:18:17 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ต้วอย่าง pure javascript ไม่มีแล้ว(ขีเกียจหา 5555)
Code (PHP)
<script>
$.ajax({
url: 'linkurl.php',
type:'post',
dataType:'json',
data: {id: 'xxx', name:'yyyyy'},
success: (rs)=>{
var tr = $('tr[data-id="zz"]')
tr.find('td[fld="id"]').html(rs.id);
tr.find('td[fld="name"]').html(rs.name);
},
error: (jqXHR, exception)=>{
var msg = '';
if (jqXHR.status === 0) { msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status === 404) { msg = 'Requested page not found. [404]';
} else if (jqXHR.status === 500) { msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') { msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') { msg = 'Time out error.';
} else if (exception === 'abort') { msg = 'Ajax request aborted.';
} else { msg = 'Uncaught Error.\n' + jqXHR.responseText; }
alert(msg+'<br>กรุณาทดลองใหม่');
}
})
</script>
<table>
<tr data-id='zz'><td fld='id'></td><td fld='name'></td></tr>
</table>
|
|
|
|
|
Date :
2018-09-20 09:51:52 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 8 เขียนโดย : Chaidhanan เมื่อวันที่ 2018-09-20 09:51:52
รายละเอียดของการตอบ ::
Code (JavaScript)
<script type="text/javascript">
function confirmalert2(e) {
e.preventDefault();
var frm = new XMLHttpRequest();
swal({
title: "",
text: "ตรวจสอบข้อมูลให้ถูกต้อง ?",
icon: "warning",
buttons: ['ยกเลิก','บันทึก'],
dangerMode: true,
}).then(function(isConfirm) {
if (isConfirm) {
frm.ajax({
url: 'linkurl.php',
type:'post',
dataType:'json',
data: {id: 'xxx', name:'yyyyy'},
success: (rs)=>{
var tr = $('tr[data-id="zz"]')
tr.find('td[fld="id"]').html(rs.id);
tr.find('td[fld="name"]').html(rs.name);
},
error: (jqXHR, exception)=>{
var msg = '';
if (jqXHR.status === 0) { msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status === 404) { msg = 'Requested page not found. [404]';
} else if (jqXHR.status === 500) { msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') { msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') { msg = 'Time out error.';
} else if (exception === 'abort') { msg = 'Ajax request aborted.';
} else { msg = 'Uncaught Error.\n' + jqXHR.responseText; }
alert(msg+'<br>กรุณาทดลองใหม่');
}
})
} else {
swal("ยกเลิกการบันทึก !" , "กลับสู่หน้าแก้ไข", "error");
}
})
}
</script>
เอาโค้ดวางส่วนนี้รึป่าวครับ ผมลองสคริปมันเออเร่อตรง success: (rs)=>{ ตรงนี้อ่ะครับ
ไม่มีความรู้เรื่องajax เลยครับ รบกวนแนะนำด้วยนะครับ
หน้า editของผมเป็นแบบนี้ครับ
Code (PHP)
<?php
$id=$_GET['id'];
$img='nopic.jpg';
mysql_connect("localhost","root","");
mysql_select_db("wptr");
mysql_query("SET NAMES UTF8");
$sql="SELECT * FROM sys_student WHERE id_s=$id;";
$rs = mysql_query($sql);
$cols = mysql_fetch_array($rs);
?>
|
ประวัติการแก้ไข 2018-09-20 19:04:21
|
|
|
|
Date :
2018-09-20 16:42:24 |
By :
benzkung53 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คุณใช้ pure javascript มาร่วมกับ jquery ไม่ได้ มันคนละ class กัน
var frm = new XMLHttpRequest();
frm.ajax()
อ่านวิธีการใช้งาน jquery ก่อนครับ เพื่อที่จะได้เขียนเองเป็น
ผมทำตัวอย่าง ให้ แต่คุณไม่ศึกษา ไม่หา document อ่านเพื่อที่จะเขียนเองให้เป็น จะรอให้เขียนให้ทั้งหมดเหรอครับ
จ้างดีกว่าไหมครับ
หา document อ่านเถอะครับจะได้เป็น
|
|
|
|
|
Date :
2018-09-20 19:00:44 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|