2011-07-04 36 views
0

您好!#2阿賈克斯產生的形式,也有一個Ajax調用

確定這個問題可能會很長,但首先IM的打算寫什麼,我要完成的任務。

我有一個下拉菜單以「區」(一個國家的),當選擇一個區域有一個功能的onchange它獲取值並進入到AJAX功能,php的文件迴應結果(這是該地區的客戶端),並且此結果也爲每個客戶端回顯一個表單,該表單基本上是一個刪除和一個編輯按鈕

當我點擊編輯,這是一個AJAX調用功能也隨聲附和另一種形式,我可以編輯註冊表。在index.php

腳本

<script type="text/javascript"> 
     function showUser(str){ 
      if (str=="") 
       { 
       document.getElementById("mostrarClientes").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("mostrarClientes").innerHTML=xmlhttp.responseText; 
       } 
       } 
      document.getElementById("mostrarClientes").innerHTML='Espere un momento porfavor...'; 
      xmlhttp.open("GET","verClientesAjax.php?ver="+str,true); 
      xmlhttp.send(); 
     } 

     function editUser(str){ 
      if (str=="") 
       { 
       document.getElementById("editarClientes").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("editarClientes").innerHTML=xmlhttp.responseText; 
       } 
       } 
      document.getElementById("editarClientes").innerHTML='Espere un momento porfavor...'; 
      xmlhttp.open("GET","editarClientesAjax.php?edit="+str,true); 
      xmlhttp.send(); 
     } 
</script> 

這是我的index.php //索引頁

<form name="form2"> 
    <select name="regiones" onchange="showUser(this.value)"> 
    <option>Seleccione una region</option> 
    <?php 
     while($row = mysql_fetch_assoc($resultRegion)){    
      echo "<option value=\"".$row['idRegion']."\">".$row['nombre']."</option><br/>"; 
     } 
    ?> 
    </select> 
</form> 
<br /> 
<div id="mostrarClientes"><b>clients by region</b></div> 
<div id="editarClientes"><b>form to edit the client</b></div> 

這是我verCliente.php //這是第一個阿賈克斯電話,我顯示該地區的客戶

<?php 
mysql_connect("localhost", "user", "pass") or die(mysql_error()); 
mysql_select_db("db_clients") or die(mysql_error()); 
header("Content-type: text/html; charset=windows-1252"); 

//////THIS IS THE FUNCTION THAT PRINTS THE FORM TO EDIT (IT'S IN THE RETURN)  
function repr($pair){ 
    list($a, $b) = $pair; 
return "<form name=\"formEdit$b\"> <div style=\"float:left; margin-right:3px\">&#149; $a</div> <div style=\"float:right\"> <input type=\"image\" name=\"edit\" src=\"edit.gif\" border=\"0\" title=\"editar\" value=\"$b\" onClick=\"editUser(this.value)\"></> <input type=\"image\" name=\"del\" src=\"delete.gif\" border=\"0\" title=\"eliminar\" value=\"$b\" onClick=\"if (!confirm('seguro que desea ELIMINAR el registro \'$a\' ?')) {return false} else{delUser(this.value)}\"></> </div> </form>"; 
} 
//////////////////// 

//////codigo para mostrar clientes 
$numReg=$_GET["ver"]; 

$nombreProvincia = ""; 
$nombreComuna = ""; 
$nombreGiro = ""; 
$nombreNombre = array(); 

$resultRegion = mysql_query("SELECT idRegion, nombre FROM region WHERE idRegion = '$numReg'"); 
$titleRegion= mysql_fetch_array($resultRegion); 
$resultClientes = mysql_query("SELECT nombre.idNombre AS idNombre, nombre.nombre AS nombreNombre, comuna.nombre AS nombreComuna, giro.nombre AS nombreGiro, provincia.nombre AS nombreProvincia, provincia.region_idRegion AS idRegion FROM nombre INNER JOIN comuna ON nombre.Comuna_idComuna = comuna.idComuna INNER JOIN giro ON nombre.Giro_idGiro = giro.idGiro INNER JOIN provincia ON comuna.Provincia_idProvincia = provincia.idProvincia WHERE provincia.region_idRegion = '$numReg' ORDER BY nombreProvincia, nombreComuna, nombreGiro, nombreNombre"); 
$num_results = mysql_num_rows($resultClientes); 

echo '<h2>'.$titleRegion['nombre'].'</h2>'; 

if ($num_results > 0){ 
    while ($row = mysql_fetch_assoc($resultClientes)) { 
     if ($nombreProvincia == $row['nombreProvincia']) { 
      if ($nombreComuna == $row['nombreComuna']) { 
       if ($nombreGiro == $row['nombreGiro']) { 
        $nombreNombre[] = $row['nombreNombre']; 
        array_push($nombreNombre,$row['idNombre']); 
       } 
       else { //nombreGiro 
        $nombreNombre = array_chunk($nombreNombre, 2); 
        $nombreNombre = array_map("repr", $nombreNombre); 
        echo '<td style="background-color: #CCCCFF">' .implode('<br />', $nombreNombre).''; 
        $nombreGiro = $row['nombreGiro']; 
        echo '</ul></td></tr><tr><td style="background-color: #FFF084">'.$nombreGiro.'</td>'; 
        $nombreNombre = array($row['nombreNombre']); 
        array_push($nombreNombre,$row['idNombre']); 
       } 
      } 
      else { // nombreComuna 
       $nombreNombre = array_chunk($nombreNombre, 2); 
       $nombreNombre = array_map("repr", $nombreNombre); 
       echo '<td style="background-color: #CCCCFF">' . implode('<br />', $nombreNombre).'</td></tr>'; 
       $nombreComuna = $row['nombreComuna']; 
       echo '<tr><td colspan="2" style="background-color: #FFCC00"><h4 style="margin: 0">'.$nombreComuna.'</h4></td></tr>'; 
       $nombreGiro = $row['nombreGiro']; 
       echo '<tr><td style="background-color: #FFF084">'.$nombreGiro.'</td>'; 
       $nombreNombre = array($row['nombreNombre']); 
       array_push($nombreNombre,$row['idNombre']); 
      } 
     } 
     else { // nombreProvincia 
      if (!empty($nombreNombre)) { 
       $nombreNombre = array_chunk($nombreNombre, 2); 
       $nombreNombre = array_map("repr", $nombreNombre); 
       echo '<td style="background-color: #CCCCFF">' . implode('<br />', $nombreNombre).'</td></tr></table>'; 
      } 

      $nombreProvincia = $row['nombreProvincia']; 
      echo '<table cellspacing="1" style="background-color:#000000; float:left;margin-right:10px"><tr><td colspan="2" style="background-color: #FF6600; text-align:center"><h3 style="margin: 0">'.$nombreProvincia.'</h3></td></tr>'; 
      $nombreComuna = $row['nombreComuna']; 
      echo '<tr><td colspan="2" style="background-color: #FFCC00"><h4 style="margin: 0">'.$nombreComuna.'</h4></td></tr>'; 
      $nombreGiro = $row['nombreGiro']; 
      echo '<tr><td style="background-color: #FFF084">'.$nombreGiro.'</td>'; 
      $nombreNombre = array($row['nombreNombre']); 
      array_push($nombreNombre,$row['idNombre']); 
     } 
    } 
    if (!empty($nombreNombre)) { 
     $nombreNombre = array_chunk($nombreNombre, 2); 
     $nombreNombre = array_map("repr", $nombreNombre); 
     echo '<td style="background-color: #CCCCFF">' . implode('<br />', $nombreNombre).'</td></tr></table>'; 
    } 
} 
     else{echo '<p>ningun dato fue encontrado aqui!</p>';} 


?> 

這是我editCliente.php //這是嵌套的Ajax調用其中i編輯的客戶端信息

<?php 
mysql_connect("localhost", "user", "pass") or die(mysql_error()); 
mysql_select_db("db_clients") or die(mysql_error()); 
header("Content-type: text/html; charset=windows-1252"); 

$regEdit=$_GET["edit"]; 

//////dropbox results para EDITAR 
$resultComunaEdit = mysql_query("SELECT idComuna, nombre FROM comuna ORDER BY nombre ASC"); 
$resultGiroEdit = mysql_query("SELECT idGiro, nombre FROM giro ORDER BY nombre ASC"); 
///////////////////// 
$editSql=mysql_query("SELECT nombre.idNombre AS idNombre, comuna.nombre AS comuna, giro.nombre AS giro, nombre.nombre AS nombre FROM nombre INNER JOIN comuna ON nombre.Comuna_idComuna = comuna.idComuna INNER JOIN giro ON nombre.Giro_idGiro = giro.idGiro WHERE idNombre = '$regEdit'"); 
$rowEdit = mysql_fetch_array($editSql); 

$regName=$rowEdit['nombre']; 
$regComuna=$rowEdit['comuna']; 
$regGiro=$rowEdit['giro']; 

echo '<h3>========================EDITAR CLIENTES====================================</h3>'; 
echo 'editando registro numero: '.$regEdit.''; 
echo "<form name=\"editor\" method=\"POST\" action=\"".$_SERVER['PHP_SELF']."\"><div align=\"center\">"; 
echo "NOMBRE CLIENTE (max 16): <input name=\"nombreNuevo\" type=\"text\" maxlength=\"16\" size=\"25\" value=\"".$regName."\"></>"; 
echo "GIRO: "; 
echo "<input name=\"giroNuevo\" type=\"text\" style=\"background-color:#CFCFCF\" maxlength=\"16\" size=\"15\" value=\"".$regGiro."\" readonly=\"readonly\"></>"; 

echo "<select name=\"giroEdit\"><option value=\"\">CAMBIAR A:</option>"; 
    while($row = mysql_fetch_assoc($resultGiroEdit)){ 
     echo "<option value=\"".$row['idGiro']."\">".$row['nombre']."</option><br/>"; 
    } 
echo "</select>"; 

echo "COMUNA: "; 
echo "<input name=\"comunaNuevo\" type=\"text\" style=\"background-color:#CFCFCF\" maxlength=\"20\" size=\"15\" value=\"".$regComuna."\" readonly=\"readonly\"></>"; 

echo "<select name=\"comunaEdit\"><option value=\"\">CABIAR A:</option>"; 
    while($row = mysql_fetch_assoc($resultComunaEdit)){ 
     echo "<option value=\"".$row['idComuna']."\">".$row['nombre']."</option><br/>"; 
    } 
echo "</select>"; 

echo "<input type=\"submit\" name=\"submitEditar\" value=\"Guardar Cambio\" onClick=\"return confirm('seguro que desea guardar cambios?');\"> </>"; 
echo "<input type=\"hidden\" value=\"".$regEdit."\" name=\"idEdit\" id=\"idEdit\"/>"; 
echo "</div></form>"; 





?> 

第一個電話的工作完美我得到該地區的客戶,但是當我點擊編輯按鈕出現問題。希望你能幫助我,對於長期的問題感到抱歉。

以防萬一你想知道,當我提交第二個窗體來編輯客戶端信息,這將是與post方法不是ajax。

+0

Hola,Puedes decirnos a que te refieres con'something goes wrong',que es lo que sucede exactamente? Saludos –

+0

nada ocurre,al hacer click en editar no me muestra nada,pareciera que se actualiza pero no muestra nada en el div editarclientes – Gmo

回答

0

問題是我使用的輸入型圖像,所以點擊時,是令人耳目一新的網站,NAD的onclick功能wasnt加載,所以我只是改變了輸入型圖像按鈕,然後它的工作=)