0

我是 ajax 和 javascript 的新手,我找到了一个脚本,我确信它有基本的错误,但这是我目前所拥有的。

我有几个按钮,当您单击每个按钮时,检查图像会打开或关闭(这些按钮是从 mysql 查询请求信息的表的一部分,它的长度取决于 mysql 结果的数量)。

我有用 php 和 mysql 编写的脚本,但是由于我需要一个表单来将数据发布到该页面并且无法刷新,所以我现在坚持使用 ajax。

所以我想做的是把mysql放在ajax里面......好吧,如果这是一个很大的错误,我很抱歉,请帮助我以正确的方式......

php代码:

(...code...)

$query = "SELECT `CÔR`, `keyword`, `Adds`, `PRMédio`, `PRDomínioMédio`, `Searches`, `CPC`, `.com`, `.org`, `.net`, `All in URL`, `All in Title`, `All in Desc.`
FROM keywords WHERE ( `Adds`>='$adds'  && `Adds`<='$addsm' && `PRMédio`>='$pr' && `PRMédio`<='$prm' && `PRDomínioMédio`>= '$prdom' && `PRDomínioMédio`<= '$prdommax'
&& `Searches`>='$s' && `Searches`<='$smax' && `CPC`>='$cpc' && `CPC`<='$cpcmax')";  

if ($query_run = mysql_query($query)){


while($query_row = mysql_fetch_assoc($query_run)){

$côr = $query_row['CÔR'];

(...code...)

<td>            
<button id='ajaxButton'>Select</button>
</td>

(...code... 'CÔR' is the only variable that matters, it's the binnary one that turns on and off the image)

的JavaScript:

(function() {
  var httpRequest;
  document.getElementById('ajaxButton').onClick = function('$q') {


    $n = "SELECT `CÔR` FROM `keywords` WHERE `keyword`='$q'";
    $b = mysql_query ($n);
    $row = mysql_fetch_array($b);


    echo "$row['CÔR'];";
    $t = $row['CÔR'];
    if ($t == 1) {
    $m = "UPDATE `keywords` SET `CÔR`=0 WHERE `keyword`='$q'";
    mysql_query ($m);
        }
    if ($t == 0) {
    $l = "UPDATE `keywords` SET `CÔR`=1 WHERE `keyword`='$q'";
    mysql_query ($l);
        }

};

  function makeRequest(index.php) {
    if (window.XMLHttpRequest) { 
      httpRequest = new XMLHttpRequest();
    } else if (window.ActiveXObject) { 
      try {
        httpRequest = new ActiveXObject('Msxml2.XMLHTTP');
      } 
      catch (e) {
        try {
          httpRequest = new ActiveXObject('Microsoft.XMLHTTP');
        } 
        catch (e) {}
      }
    }

    if (!httpRequest) {
      alert('Giving up :( Cannot create an XMLHTTP instance');
      return false;
    }
    httpRequest.onreadystatechange = alertContents;
    httpRequest.open('GET', index.php);
    httpRequest.send();
  }

  function alertContents() {
    if (httpRequest.readyState === 4) {
      if (httpRequest.status === 200) {
        alert(httpRequest.responseText);
      } else {
        alert('There was a problem with the request.');
      }
    }
  }
})
();

再次抱歉,如果这冒犯了专业人士,请告诉我正确的方法。

4

2 回答 2

0

看来您还将 mysql 代码/函数放入 javascript 中,这确实不是正确的位置。

你应该这样做如下:

  1. 创建一个 php 文件 yourcode.php ,其中包含您期望的 AJAX 调用响应的结果。

  2. 然后

    document.getElementById('ajaxButton').onClick = function('$q') {
        url = 'yourcode.php';
        makeRequest(url);
    

    然后更改代码

    function makeRequest(url) {
        httpRequest.open('GET', url);
    
  3. 这将调用一个方法,该方法又将调用您的“yourcode.php”并返回由该文件呈现的输出。

如果您想发布数据,那么您应该考虑将其转换为 JSON 对象。

于 2013-04-30T11:50:23.327 回答
0

JavaScript 是客户端,PHP(和 Mysql)是服务器端。这意味着您需要将 JavaScript 收集的数据从客户端发送到服务器。这可以通过 AJAX 完成。如果你愿意,jQuery 有一个非常好的和方便的界面来使用 AJAX:

http://api.jquery.com/jQuery.post/ 用于 POST 和 http://api.jquery.com/jQuery.post/ 用于 GET 最好的事情是看一下,然后从那里开始工作。

于 2013-04-30T11:46:10.597 回答