01/10/2018, 14:22

Hỏi về cách so sánh giá trị trong mysql và giá trị tính bởi hàm javascript

Mình có một hàm javascript tính ra giá trị theo input nhập vào theo kiểu a = b - c;
Giá trị trong mysql thì mình gọi ra được là d.
Làm sao để mình so sánh 2 giá trị này trong php hoặc trong javascript được các bác nhỉ.
Không gán vào một nút onclick nhé các bác.

Vô Thin viết 16:37 ngày 01/10/2018

Ủa, bạn không dùng ngôn ngữ PHP hoặc một ngôn ngữ server-side nào xử lý à? Nếu thế thì không có cách nào để xử lý vấn đề của bạn hết.

Cách mình đề xuất: bạn muốn tính giá trị kia, đơn giản là bắt sự kiện, sau khi người dùng nhập xong thì họ sẽ phải bấm nút để tính hoặc làm hành động gì đó như bấm Enter, bấm tab hay một phím/ ký tự/ nút chuột dưới nào đó, chứ nếu nhập xong rồi tự tính thì khó để bạn viết JavaScript để biết lúc nào người dùng nhập xong con số, trừ khi bạn quy định con số có độ dài cố định. Khi bắt được sự kiện rồi thì gọi Ajax đến một php script mà script này có nhiệm vụ là get lấy giá trị trong input đó rồi query để tìm trong MySQL xem có tồn tại con số kia không, nếu có thì trả về true hoặc một giá trị nào đó, tức đã so sánh xong, còn không tìm thấy thì cũng trả về một giá trị để biết. Gọi Ajax thì bạn tìm code đầy trên mạng, một ví dụ cụ thể có thể xem xét.

voss viết 16:27 ngày 01/10/2018

Cảm ơn bạn đã phản hồi. Mình dùng php để sử lý sever-site. Mô hình của mình web site của mình là sử dụng một hàm javascrip để tính ra giá trị dựa vào giá trị input đầu vào. Giá trị tính ra đó sẽ được đẩy lên mysql. Mình muốn làm thêm cái so sánh giữa cái giá trị vừa tính (gọi là giá trị thứ n) với cái giá trị đã add lên database trước đó( gọi là giá trị thứ n-1) mình select ra. Thực ra mình có thể add lên database rồi lấy ra 2 giá trị của database để so sánh nhưng mình muốn so sánh trước khi thêm vào database. Mà mình ko muốn gán function vào nút onclick. Đang nghĩ mãi mà chưa ra giải pháp
@ mình dùng onkeyup để gọi function tính trong javascript mà

Vô Thin viết 16:35 ngày 01/10/2018

Mình muốn làm thêm cái so sánh giữa cái giá trị vừa tính (gọi là giá trị thứ n) với cái giá trị đã add lên database trước đó( gọi là giá trị thứ n-1) mình select ra. Thực ra mình có thể add lên database rồi lấy ra 2 giá trị của database để so sánh nhưng mình muốn so sánh trước khi thêm vào database.

MySQL truy vấn đọc ra nhanh hơn insert vào rất nhiều, do đó, bạn chỉ nên query đúng một cột giá trị mà bạn cần lấy ra so sánh, chứ đừng insert vô rồi sau đó lại lấy ra 2 giá trị, sẽ làm chậm đi không cần thiết nếu việc đó là thực hiện nhiều lần.

Còn việc “Mà mình ko muốn gán function vào nút onclick” thì bạn sẽ phải gán nó vào đâu? Không có sự kiện hoặc yếu tố nào xảy ra thì làm sao mà JavaScript biết lúc nào nên thực hiện, ngay cả con người cũng vậy, đi ngang ngã tư mà bị cúp điện không có đèn xanh đỏ gì bạn cũng còn lúng túng nữa là. Cho nên, hãy gán cho một sự kiện nào đó, không nút thì dùng đếm thời gian trôi qua, nếu nhập xong sau 1 giây thì tự tính hoặc click chuột ra ngoài ô nhập hay gì gì đó, chứ không có chuyện gì xảy ra thì bạn đưa bạn vào ngõ cụt.

voss viết 16:22 ngày 01/10/2018

Cảm ơn bạn về ý tưởng 1s thời gian Thực ra mình định dùng

function tinhtoan(){
var a = <?php echo json_encode($row)?>;
}

Với $row là array gọi ra từ database bằng php. Rồi lấy ký tự trong mảng này so sánh giá trị tính trong cái funciton tinhtoan() luôn. Mà thấy javascript nó không gọi ra được :(.

Bài liên quan
0