使用ajax将mysql结果返回给php

时间:2013-12-20 20:34:18

标签: javascript php jquery mysql ajax

我一直在处理这个问题,但我在这里看不到解决方案。 我正在制作一个简单的列表应用程序,每当用户创建一个新项目时,它应该保存到数据库中。 问题是每个项目都有一个唯一的ID(自动递增),当项目附加到列表时,该ID必须在html代码上(其他功能需要使用它,所以当它上传到数据库时,然后应该选择ID并再次发送到原始的html文件,但我不知道该怎么做(事实上,我不知道)。

这是我的php / html代码:

while($row = mysql_fetch_array($selectitems) ){
        echo'<html>
             <li class="i­tem"  data-id="';
        echo $row['IDitem'];     
        echo     '">
          <div class="draggertab"><img src="imatges/botofletxa.jpg" width="30" height="30"></div>
          <div class="deletetab"><img src="imatges/botocreu.jpg" width="30" height="30"></div>
             <span class="item">';
        echo $row['Text'];
        echo'</span>          
          </li>
          </html>';
          }

javascript:

 ajax.onreadystatechange=function() {
      //la función responseText tiene todos los datos pedidos al servidor
    if (ajax.readyState==4) {
        //mostrar resultados en esta capa
        AppendItem();
        //llamar a funcion para limpiar los inputs
        LimpiarCampos();
    }
 }
    ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    //enviando los valores a registro.php para que inserte los datos
    ajax.send("nombre="+nom+"&IDllista="+llista);
}

PHP:

$con = mysql_connect($bd_host, $bd_usuario, $bd_password); 
mysql_select_db($bd_base, $con); 

//variables POST

$nom=$_POST['nombre'];
$IDllista = $_POST['IDllista'];

//registra los datos del empleados
 $sql="INSERT INTO items (Text, IDllista) VALUES ('$nom', '$IDllista')";
mysql_query($sql,$con) or die('Error. '.mysql_error());

还有更多代码,但我发布了我认为最重要的部分。它现在完美运行,我只需要发送ID。

非常感谢!!

1 个答案:

答案 0 :(得分:0)

您应该避免使用mysql_ *并使用PDO。自PHP5.5起,Mysql_函数被删除

无论如何,您可以检索生成的最后一个ID:mysql_insert_id()并将其返回到您的ajax处理程序,然后您可以使用var id = xmlhttp.responseText;

获取它

PHP:

$sql="INSERT INTO items (Text, IDllista) VALUES ('$nom', '$IDllista')";
mysql_query($sql,$con) or die('Error. '.mysql_error());

echo mysql_insert_id(); // return the ID

JS:

ajax.onreadystatechange=function() {
    if (ajax.readyState==4) {
         ....
         var id = ajax.responseText; // get it
    } 
 }