 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
asavin
Data înscrierii: 23/Noi/2005
Mesaje: 175
Locație: Galati
|
| Trimis: Vin Mar 30, 2007 9:08 am Titlul subiectului: Problema script Ajax |
|
|
Salutare!
Am un script foarte simplu Ajax prin care fac cereri catre server si unul php. Cred ca cel mai bine este sa le vedeti :
Cod:
var http = createRequestObject();
var objectId = '';
function leftTrim(sString) {
while (sString.substring(0,1) == ' ') {
sString = sString.substring(1, sString.length);
}
return sString;
}
function rightTrim(sString) {
while (sString.substring(sString.length-1, sString.length) == ' ') {
sString = sString.substring(0,sString.length-1);
}
return sString;
}
function createRequestObject(htmlObjectId){
var obj;
objectId = htmlObjectId;
if(window.ActiveXObject){
obj = new ActiveXObject("Microsoft.XMLHTTP");
}
else{
obj = new XMLHttpRequest();
}
return obj;
}
function sendReq(serverFileName, variableNames, variableValues) {
var paramString = '';
variableNames = variableNames.split(',');
variableValues = variableValues.split(',');
for(i=0; i<variableNames.length; i++) {
paramString += leftTrim(rightTrim(variableNames[i]))+'='+leftTrim(rightTrim(variableValues[i]))+'&';
}
paramString = paramString.substring(0, (paramString.length-1));
if (paramString.length == 0) {
http.open('get', serverFileName);
}
else {
http.open('get', serverFileName+'?'+paramString);
}
http.onreadystatechange = handleResponse;
http.send(null);
}
function handleResponse() {
if(http.readyState == 4){
responseText = http.responseText;
document.getElementById(objectId).innerHTML = responseText;
}
}
Script din pagina client :
Cod:
<div id="div_edit_status">
<div id="div_status" >
<select name="select_status" id="select_status" onchange="if(this.value) {createRequestObject('div_edit_status');sendReq('modules/projects_data/http_request/server_artlist_codes.php\', 'action, status, cd_id' , 'update_status, ' + URLEncode(this.value) + 'id');}">
<option>Pending</option>
<option>----------</option>
<option value="2">Ordered</option>
<option value="6">Stock</option>
<option value="5">Pur. UK</option>
<option value="4">Modified</option>
<option value="7">Solved</option>
<option value="3">Canceled</option>
</select>
</div>
</div>
Script din pagina server :
an style="color: #000000"><?php isset($_GET['status'])?$status=mysql_real_escape_string($_GET['status']):exit();
$sql=mysql_query('...'); echo mysql_error();
$onChange=
'if(this.value) {'
.'createRequestObject(\'div_edit_status\');'
.'sendReq(\'modules/stock_data/http_request/server_artlist_codes.php\', '
.'\'action, status, cd_id\' , \'update_status, + URLEncode(this.value));
.'}';
switch ($status) {
case '1' :
$content = '<div id="div_status" '
.'style="display:none">'.PHP_EOL
.'<select name="select_status"'.
.'" id="select_status" '
.'onchange="'.$onChange.'">'.PHP_EOL
.'<option>Pending</option>'.PHP_EOL
.'<option>----------</option>'.PHP_EOL
.'<option value="2">Ordered</option>'.PHP_EOL
.'<option value="6">Stock</option>'.PHP_EOL
.'<option value="5">Pur. UK</option>'.PHP_EOL
.'<option value="4">Modified</option>'.PHP_EOL
.'<option value="7">Solved</option>'.PHP_EOL
.'<option value="3">Canceled</option>'.PHP_EOL
.'</select></div>.PHP_EOL;
break;
...
}
echo $content;
Practic cea ce face scriptul Ajax de mai sus este sa inlocuiasca innerHTML-ul elementului "div_edit_status" cu orice este afisat in pagina server.
Problema este ca prima data merge schimbat, a doua oara (a doua oara deja e cel din pagina server) iar a treia oara imi da eroare js ca elementul nu mai exista.
Are cineva vreo idee ... ?
Mersi,
Alex |
|
| Sus |
|
gafitescu
Data înscrierii: 21/Mar/2006
Mesaje: 38
Locație: Iasi
|
| Trimis: Vin Mar 30, 2007 11:19 am Titlul subiectului: |
|
|
Incearca in loc de in php
$content = '<div id="div_status" '
.'style="display:none">'.PHP_EOL
sa fie
$content = '<div id="div_status" '
.'style="display:none">'.PHP_EOL
" cu " nu vad care ar fi problema de ce pui "...probabil ca nu gaseste respectivul div definit cu id div_status |
|
| Sus |
|
asavin
Data înscrierii: 23/Noi/2005
Mesaje: 175
Locație: Galati
|
| Trimis: Vin Mar 30, 2007 11:29 am Titlul subiectului: |
|
|
| Dar nu e "e; .... cred ca e o eroare PHPBB ca de fapt am scris " acolo... |
|
| Sus |
|
gafitescu
Data înscrierii: 21/Mar/2006
Mesaje: 38
Locație: Iasi
|
| Trimis: Vin Mar 30, 2007 12:14 pm Titlul subiectului: |
|
|
Instaleazati firebug si uitate in consola...
si scrie ce eroare iti da si da un copy / paste la raspuns |
|
| Sus |
|
asavin
Data înscrierii: 23/Noi/2005
Mesaje: 175
Locație: Galati
|
| Trimis: Vin Mar 30, 2007 12:51 pm Titlul subiectului: |
|
|
gafitescu a scris: Instaleazati firebug si uitate in consola...
si scrie ce eroare iti da si da un copy / paste la raspuns
Am instalat Firebug ... super plugin ... mersi ca mi-ai zis de el ...
Cred ca am gasit si erorarea :
Normal trebuia sa fie
Cod:
<td class="cells" align="center" ondblclick="edit_status('293');" style="border-bottom: medium none rgb(204, 204, 204);">
<div id="div_edit_status_293">
<span id="span_status_293" style="display: block;">Moddified</span>
<div id="div_status_293" style="display: none;">
<select id="select_status" onchange="if(this.value) {createRequestObject('div_edit_status_293');sendReq('modules/projects_data/http_request/server_artlist_codes.php', 'action, status, cd_id' , 'update_status, '+URLEncode(this.value)+', 293' );edit_status('293');}" name="select_status_293">
<option>Moddified</option>
<option>----------</option>
<option value="6">Stock</option>
<option value="5">Pur. UK</option>
<option value="7">Solved</option>
<option value="3">Canceled</option>
</select>
</div>
</div>
</td>
si dupa ce modfic de 2 ori :
Cod:
<td class="cells" align="center" ondblclick="edit_status('293');" style="border-bottom: medium none rgb(204, 204, 204);">
<div id="div_edit_status_293"/>
</td>
are cineva vreo idee ?? |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|