Dynamic Form Update

Discutii legate de AJAX, jQuery, MooTools, Prototype, Dojo, Yahoo! UI Library,script.aculo.us, ExtJS,AngularJS, Backbone.js, Ember.js, KnockoutJS

Moderator: Moderatori


Avatar utilizator
PET
Senior Member
Mesaje: 325
Membru din: Mie Aug 20, 2003 11:40 pm
Localitate: Timisoara
Contact:

Mesajde PET » Joi Noi 06, 2008 1:39 pm

Am din nou nevoie de ajutor. Am citit aici:
http://www.w3schools.com/PHP/php_ajax_database.asp

M-am pus eu sa fac... dar nu vrea sa mearga.

Ce vreau eu e asa:

Am un formular.
Scriu intr-un input text ceva si apare un auto-sugest.
Fac click pe ceva din acel auto-sugest.
Cand fac click sunt cam 3 fielduri care se populeaza.
Search - ID - NAME
id si name sunt disabled ca sa nu poata fi modificate
Atunci mai am 2 fields HIDDEN tot cu ID si NAME

Asaaa.... tot ce e aici merge perfect.
Ce vreau eu sa fac.

Atunci cand ID devine populat, adica eu am facut click pe ceva din auto-sugest... vreau sa fac un query in baza de date si sa vad daca mai am acel ID... si apoi sa dau un mesaj intr-un anumit DIV.

Nu stiu ce naiba ... dar nu vrea sa mearga. Am incercat asa basic, faca query, doar un echo.

Asta e Javascriptul:

Cod: Selectaţi tot

var xmlHttp

function GetXmlHttpObject(){
    var xmlHttp=null;
    try
     {
     // Firefox, Opera 8.0+, Safari
     xmlHttp=new XMLHttpRequest();
     }
    catch (e)
     {
    //Internet Explorer
     try
      {
       xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
     catch (e)
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
return xmlHttp;
}

check_card(id){
   xmlHttp=GetXmlHttpObject()
   if (xmlHttp==null)
    {
    alert ("Browser does not support HTTP Request")
    return
    }
   var url="index2.php"
   url=url+"?a=check_card&id="+id
   url=url+"&sid="+Math.random()
   xmlHttp.onreadystatechange=stateChanged
   xmlHttp.open("GET",url,true)
   xmlHttp.send(null)
}

function stateChanged(){
   if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
        document.getElementById("message").innerHTML=xmlHttp.responseText
   }
}


In PHP am un simplu ECHO... si in HTML am ceva de genu:

Cod: Selectaţi tot

.....
   <tr bgcolor="#FFF224">
      <td><div align="right"><strong>Card Name:</strong></div></td>
      <td><div align="left">
        <input name="card_id2" type="text" id="card_id2" size="4" maxlength="5" disabled="disabled">
       <input name="card_id" id="card_id" type="hidden" value="" onchange="check_card(this.value)" />
        <input name="card_name2" type="text" id="card_name2" size="35" maxlength="100" disabled="disabled">
        <input name="card_name" type="hidden" id="card_name">
      </div></td>
    </tr>
    <tr>
     <td colspan="2"><div align="left" id="message">&nbsp;{$message}</div></td>
    </tr>
    <tr bgcolor="#FFF224">
.....


Stau deja de 1 ora jumate. La inceput e misto cand citesc, mai invat ceva, dar acum deja devine stresant.

Mersi
PET - Vesnicul n00b al acestui forum :)

Avatar utilizator
mihaitha
Senior Member
Mesaje: 2383
Membru din: Vin Mai 04, 2007 12:40 pm
Localitate: Sibiu
Contact:

Mesajde mihaitha » Joi Noi 06, 2008 1:44 pm

ai uitat sa pui function in JS la declararea lui check_card. Adica nu

Cod: Selectaţi tot

check_card(id) { ...
ci

Cod: Selectaţi tot

function check_card(id) {...
The devil resides in the details... :P

Avatar utilizator
PET
Senior Member
Mesaje: 325
Membru din: Mie Aug 20, 2003 11:40 pm
Localitate: Timisoara
Contact:

Mesajde PET » Vin Noi 07, 2008 12:47 am

Am pus... totusi nu merge. Deocamdata incerc sa fac u nsimplu text ... asa arata codul PHP:

Cod: Selectaţi tot

        case 'check_card':
                    
           echo 'mesaj';
        break;


Deci cand acel FIELD HIDDEN se schimba eu vreau sa arat doar "mesaj". Dar nu apare.
PET - Vesnicul n00b al acestui forum :)

Avatar utilizator
PET
Senior Member
Mesaje: 325
Membru din: Mie Aug 20, 2003 11:40 pm
Localitate: Timisoara
Contact:

Mesajde PET » Vin Noi 07, 2008 2:57 am

Deci nu mai pot. Ma dispera. Am luat codul, exact cum e aici:
http://www.w3schools.com/PHP/php_ajax_database.asp

Tot ce am modficat a fost baza de date. Ma conectez in alta baza de date cu alt user si alta parola si iau alt info. Ar trebui sa mearga... totusi nu mere ... da de loc.

Nu se poate sa testez ce nu e bun? E acelasi nume de fisier. DIV-ul e acelasi, tot tot tot ... doar in PHP modificat baza de date si tabela.
PET - Vesnicul n00b al acestui forum :)

Avatar utilizator
PET
Senior Member
Mesaje: 325
Membru din: Mie Aug 20, 2003 11:40 pm
Localitate: Timisoara
Contact:

Mesajde PET » Vin Noi 07, 2008 1:52 pm

Ziceti-mi si mie ce e gresit aici.

www.ostatesports.com/pet/test.zip
PET - Vesnicul n00b al acestui forum :)

Avatar utilizator
Amenthes
Senior Member
Mesaje: 1370
Membru din: Lun Dec 12, 2005 8:00 am
Contact:

Mesajde Amenthes » Vin Noi 07, 2008 2:19 pm

Uite eroarea:
http://amenthes.110mb.com/eroare.jpg

Instaleaza-ti Firebug:
https://addons.mozilla.org/en-US/firefox/addon/1843

Sau activeaza-ti-l... :)
I'm under construction | http://igstan.ro

Avatar utilizator
PET
Senior Member
Mesaje: 325
Membru din: Mie Aug 20, 2003 11:40 pm
Localitate: Timisoara
Contact:

Mesajde PET » Vin Noi 07, 2008 2:57 pm

Nu merge JPG-ul tau. Dar m-a ajutat un prieten. A scos var xmlHttp de la inceputul fisierului si am adaugat

<script language="JavaScript" src="./selectuser.js"></script>

------------

Si totusi, la mine in script tot nu mere. Incerc acum cu firebug sa vad ce zice.
PET - Vesnicul n00b al acestui forum :)

Avatar utilizator
Amenthes
Senior Member
Mesaje: 1370
Membru din: Lun Dec 12, 2005 8:00 am
Contact:

Mesajde Amenthes » Vin Noi 07, 2008 3:04 pm

Ar trebui sa dau si eu niste bani si sa imi iau un host ca lumea... in fine.
Uite JS-ul modificat. La mine merge.

Cod: Selectaţi tot

var xmlHttp;

function showUser(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
 {
 alert ("Browser does not support HTTP Request")
 return
 }
var url="getuser.php"
url=url+"?q="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 {
 document.getElementById("txtHint").innerHTML=xmlHttp.responseText
 }
}function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 //Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}


Ca sfat, indenteaza codul. O sa vezi mai usor ce ai gresit.
Si invata syntax highlighting-ul de la editor.
I'm under construction | http://igstan.ro

Avatar utilizator
PET
Senior Member
Mesaje: 325
Membru din: Mie Aug 20, 2003 11:40 pm
Localitate: Timisoara
Contact:

Mesajde PET » Vin Noi 07, 2008 3:14 pm

Am rezolvat. Merge si la mine treaba... DAR... care era shmenu.

Eu am un field in care scriu ceva si apoi din acel auto sugest... se face click si se populeaza alte inputuri

1 input e HIDDEN si 1 e DISABLED ... asta deoarece cu cel disabled nu puteam sa-i iau info la Submit.

Asa, eu am pus acel ONCHANGE ... de test... la AMBELE chestii. O data la hidden, nu a mers, o data la DISABLED, nu a mers.

Cred ca onchange nu e bun :) Ce alta posibilitate mai am?

Later Edit: Deci, daca pun la un INPUT normal, si scriu ceva, si apoi clickui altundeva, MERGE. Dar eu vreau doar cand un INPUT DISABLED devine populat sa iau acel info.
PET - Vesnicul n00b al acestui forum :)

Avatar utilizator
mihaitha
Senior Member
Mesaje: 2383
Membru din: Vin Mai 04, 2007 12:40 pm
Localitate: Sibiu
Contact:

Mesajde mihaitha » Vin Noi 07, 2008 4:25 pm

Pentru asta va trebui sa faci apelul functiei in functia care modifica valoarea din campul disabled. Campurile disabled nu fac trigger la evenimente pentru ca... sunt disabled!

Avatar utilizator
Amenthes
Senior Member
Mesaje: 1370
Membru din: Lun Dec 12, 2005 8:00 am
Contact:

Mesajde Amenthes » Vin Noi 07, 2008 4:40 pm

Eu nu am inteles de ce acel camp trebuie sa fie disabled.
readonly="readonly" nu te ajuta?
I'm under construction | http://igstan.ro

Avatar utilizator
PET
Senior Member
Mesaje: 325
Membru din: Mie Aug 20, 2003 11:40 pm
Localitate: Timisoara
Contact:

Mesajde PET » Vin Noi 07, 2008 6:28 pm

Disabled deoarece vreau sa-l vada dar sa nu-l modifice. nu stiam ca exista readonly :D
PET - Vesnicul n00b al acestui forum :)

Avatar utilizator
PET
Senior Member
Mesaje: 325
Membru din: Mie Aug 20, 2003 11:40 pm
Localitate: Timisoara
Contact:

Mesajde PET » Sâm Noi 08, 2008 4:23 am

Hmm... am incercat cu readonly si input normal.

cu onchange nu prea mere treaba.

Ca functia sa fie executata, useru trebe sa selecteze si sa modifice acel input, iar eu cum populez inputu automat, nu se face functia.

De fapt cred ca o sa fac un buton mic... de genu "check" si cand se apasa pe ala sa se intample toata chestia.
PET - Vesnicul n00b al acestui forum :)

adriano21
New Member
Mesaje: 1
Membru din: Mar Mai 22, 2012 8:28 pm

Re: Dynamic Form Update

Mesajde adriano21 » Mar Mai 22, 2012 8:34 pm

salut PET!
Imi scrii te rog codul prin care afisezi datele din baza de date in input?
thanks!


Înapoi la “Librarii Javascript”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 4 vizitatori