Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekazanie zmiennej
Forum PHP.pl > Forum > XML, AJAX > AJAX
miamaji
Witam,
Mam problem pewnie dla was banalny mianowicie nie moge przekazać zmiennej z php do js.
Koj js:

Kod
function ajax(id) {
           $.ajax({
               type: "POST",
               url: "ajax.php",
               data: "value="+$('#'+id).val()+"&id="+id,
               success: function(msg){
                   alert( "wiadomosc " + msg );
               }
           });
       }

oraz kod php:

Kod
<?php echo '<textarea class="noticeDispatchingConsole" name="note" id="'.$lista["Record_Entry_ID"].'">'.$lista["Notice"].'
   </textarea>
   <img src="img/save.gif" style="float:left; padding: 7px 0px 0px 5px;" onclick="javascript:ajax(\''.$lista["Record_Entry_ID"].'\')"/>  
   <div class="saveOn'.$lista["Record_Entry_ID"].'" style="display:none; float:left; padding: 8px 0px 0px 20px;">Save...</div>';?>
Z góry dziękuje za pomoc,
Pozdrawiam
wookieb
A jak ten bład się objawia? Może pokaż wygenertowany kod html.
miamaji
w alercie wyświetla tylko text: wiadomość bo plik ajax.php wogóle nie widzi tej zmiennej z textarea

ajax.php
Kod
<?php
$qdbpl=@mssql_connect("SBELB15002\NETIQ", "SupervisionLog", "!supervision!#log!");
@mssql_select_db("SupervisionLog", $qdbpl);
  mssql_query('UPDATE SupervisionLog SET Notice =\''.$_POST['value'].'\' WHERE Record_Entry_ID=\''.$_POST['id'].'\'');
  echo $_POST['value'];
?>
wookieb
1) nie prosiłem przecież o kod ajax.php
2) w ajax.php daj sobie print_r($_POST);
3) jezeli bedzie pusta to zobacz sobie jeszcze print_r($_SERVER);
4) pokaż te kod html bo trzeba najpierw sprawdzić czy przekazujesz poprawnie dane do js.
miamaji
Po zamianie na print_r($_POST) widzi id poprawnie natomiast value jako undefinded.
Nie zamiescilam kodu poniewaz jest tu mnustwo danych firmy których nie moge zamieszczac, a usuwanie ich do jutra by mi zajeło. Jak napisalam na samej górze js widzi znienną id aczkolwiek value nie. Zapewne zle ja przekazuje badz wcale jej nieprzekazuje i w zwiazku z tym prosze o pomoc.
Myslałam o czymś w ten deseń
Kod
<?php echo '<textarea class="noticeDispatchingConsole" name="note" id="'.$lista["Record_Entry_ID"].'">'.$lista["Notice"].'
   </textarea>
   <img src="img/save.gif" style="float:left; padding: 7px 0px 0px 5px;" onclick="javascript:ajax(\''.$lista["Record_Entry_ID"].'\', this.value)"/>  
   <div class="saveOn'.$lista["Record_Entry_ID"].'" style="display:none; float:left; padding: 8px 0px 0px 20px;">Save...</div>';?>



i prosze już nie krzycz tongue.gif
wookieb
Sprawdz sobie w js
Kod
alert($('#'+id).val());

A potem poprawnosc czy element o takim id rzeczywiscie istnieje
miamaji
Sprawdzałam już tak i mam tresc alertu:
wiadomość: undefindet
Jak napisałam powyżej pewnie zmiennej nie potrafie przekazać.
Tak element o tym id rzeczywiście istnieje.
Kod
<textarea class="noticeDispatchingConsole" name="note" id="HD0000001859992" >cos</textarea>
<img src="img/save.gif" style="float:left; padding: 7px 0px 0px 5px;" onclick="javascript:ajax('HD0000001859992')" />
wookieb
try
Kod
   <img src="img/save.gif" style="float:left; padding: 7px 0px 0px 5px;" onclick="javascript:ajax('.$lista["Record_Entry_ID"].')"/>
miamaji
niestety
wookieb
Cytat(miamaji @ 23.03.2009, 17:14:01 ) *
niestety


No tak to raczej nei bo dopiero teraz zauwazylem ze to jest id tekstowe sad.gif
Kod
<img src="img/save.gif" style="float:left; padding: 7px 0px 0px 5px;" onclick="javascript:ajax(\''.$lista["Record_Entry_ID"].'\')"/>

Wywaliłem to this.value
I potem w js na poczatku
Kod
alert($('#'+id).length+' - '+$('#'+id).val());

I wklej co zostanie wyświetlone.
miamaji
0 - undefined
btw. bardzo dziękuję za pomoc.

jak podaje stałe coś to wszystko ładnie działa data: "id="+id+"&value=b", może jest jakiś inny sposób żeby js zobaczyło: formularz, poczta polska jakkolwiek ... sad.gif
wookieb
Czyli elementu o podanym id nie ma. Z tego wychodzi. Sprawdź czy też id się czasem nigdzie nie dubluje w całym dokumencie html. I upewnij się na 100% ze element o takim id istnieje bo ze skryptu jednoznacznie wynika, że nie.
Poza tym może wklejają się jakieś niewidoczne białe znaki więc przed twoim kodem wyświetlającym dodaj
  1. <?php
  2. $lista["Record_Entry_ID"]=trim($lista["Record_Entry_ID"]);
  3. ?>


I jeszcze jedno... Ja głupi nie zauwazyłem
Kod
<img src="img/save.gif" style="float:left; padding: 7px 0px 0px 5px;" onclick="ajax(\''.$lista["Record_Entry_ID"].'\')"/>

to "java script:" było niepotrzebne ale nie wiem czy to ma jakies wieksze znaczenie biggrin.gif
miamaji
Bardzo bardzo ale to bardzo dziękuje biggrin.gif stawiam piwo smile.gif

ole ole ole ole UDAŁO SIĘ exclamation.gif UDAŁO SIĘ exclamation.gif tongue.gif

chodziło o zbędne spacje usunięte funkcją trim
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.