我有这个小点击计数器。我想将每次单击都包含在mysql表中。有人可以帮忙吗?
var count1 = 0; function countClicks1() { count1 = count1 + 1; document.getElementById("p1").innerHTML = count1; } document.write('<p>'); document.write('<a href="javascript:countClicks1();">Count</a>'); document.write('</p>'); document.write('<p id="p1">0</p>');
万一有人想看看我做了什么:
var count1 = 0; function countClicks1() { count1 = count1 + 1; document.getElementById("p1").innerHTML = count1; } function doAjax() $.ajax({ type: "POST", url: "phpfile.php", data: "name=name&location=location", success: function(msg){ alert( "Data Saved: " + msg ); } }); } document.write('</p>'); document.write('<a href="javascript:countClicks1(); doAjax();">Count</a>'); document.write('</p>'); document.write('<p id="p1">0</p>');
这是phpfile.php,出于测试目的,将数据写入txt文件
<?php $name = $_POST['name']; $location = $_POST['location']; $myFile = "test.txt"; $fh = fopen($myFile, 'w') or die("can't open file"); fwrite($fh, $name); fwrite($fh, $location); fclose($fh); ?>
您的问题中定义的JavaScript不能直接与MySql一起使用。这是因为它不在同一台计算机上运行。
JavaScript在客户端(在浏览器中)运行,并且数据库通常在服务器端存在。您可能需要使用中间服务器端语言(例如PHP,Java,.Net或服务器端JavaScript堆栈(例如Node.js))进行查询。
这是有关如何编写一些代码的教程,这些代码将PHP,JavaScript和MySql绑定在一起,并在浏览器和服务器上运行代码:
http://www.w3schools.com/php/php_ajax_database.asp
这是该页面上的代码。它与您的方案不完全匹配(它会执行查询,并且不会在数据库中存储数据),但是它可能会帮助您开始理解实现此工作所需的交互类型。
特别要注意该文章中的这些代码。
一点点Javascript:
xmlhttp.open("GET","getuser.php?q="+str,true); xmlhttp.send();
PHP代码位:
mysql_select_db("ajax_demo", $con); $result = mysql_query($sql); // ... $row = mysql_fetch_array($result) mysql_close($con);
另外,在了解了此类代码的工作方式之后,建议您使用jQuery JavaScript库进行AJAX调用。它比内置的AJAX支持更干净,更容易处理,并且您不必编写特定于浏览器的代码,因为jQuery内置了跨浏览器支持。这是jQuery AJAX API文档的页面。
HTML / JavaScript代码:
<html> <head> <script type="text/javascript"> function showUser(str) { if (str=="") { document.getElementById("txtHint").innerHTML=""; return; } if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("txtHint").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","getuser.php?q="+str,true); xmlhttp.send(); } </script> </head> <body> <form> <select name="users" onchange="showUser(this.value)"> <option value="">Select a person:</option> <option value="1">Peter Griffin</option> <option value="2">Lois Griffin</option> <option value="3">Glenn Quagmire</option> <option value="4">Joseph Swanson</option> </select> </form> <br /> <div id="txtHint"><b>Person info will be listed here.</b></div> </body> </html>
PHP代码:
<?php $q=$_GET["q"]; $con = mysql_connect('localhost', 'peter', 'abc123'); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("ajax_demo", $con); $sql="SELECT * FROM user WHERE id = '".$q."'"; $result = mysql_query($sql); echo "<table border='1'> <tr> <th>Firstname</th> <th>Lastname</th> <th>Age</th> <th>Hometown</th> <th>Job</th> </tr>"; while($row = mysql_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['FirstName'] . "</td>"; echo "<td>" . $row['LastName'] . "</td>"; echo "<td>" . $row['Age'] . "</td>"; echo "<td>" . $row['Hometown'] . "</td>"; echo "<td>" . $row['Job'] . "</td>"; echo "</tr>"; } echo "</table>"; mysql_close($con); ?>