Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] cudzysłów w zmiennej
Forum PHP.pl > Forum > Przedszkole
gustaff
Witam,
w popupie jest formularz, gdzie dodawana jest nazwa firmy do bazy. Po zatwierdzeniu formularza, jeśli INSERT INTO się powiedzie, wprowadzone dane przekazywane są do formularza w oknie głównym. Wszytko ładnie działa do czasu gdy w nazwie firmy pojawi się cudzysłów,
np. Jan Kowalski TPSA - jest ok, ale już Jan Kowalski "TPSA" nie działa - nie przenosi danych, nie zamyka okna. Z addshlases czy bez nie robi żadnej różnicy :/

Kod
         <script type="text/javascript">
          function move(str) {
          opener.document.getElementById("firma").value = str;
          }
          </script>



Kod
<?
          if($_POST[zapisz]=='1')
            {
             $firma = addslashes($_POST['firma']);
             include('mysql.inc');
             mysql_query('SET NAMES \'utf8\'');
             $query = "INSERT INTO nabywca VALUES('' ,'$firma')";
          
                  if(mysql_query($query))
                       echo "<script language=\"JavaScript\">move('$firma');self.close();</script>";
                  else
                       mysql_errno();
             }
          
          else
               echo "<form action=$_SERVER[PHP_SELF] method=\"post\" name=\"formularz\">
               <table width=90% id=tc align=center cellspacing=3>
               <tr><td align=right><b>Nazwa firmy:</b></td><td><input type=text size=40 name=firma id=firma></td></tr>
               <tr><td align=center colspan=2>
               <input type=\"submit\" name=\"zapisz\" value=\"1\"/></form></td>';
          ?>


Pozdrawiam
Gustaw
nexis
Następnym razem popracuj proszę trochę nad składnią jeśli chcesz, żeby Ci ktoś pomógł. Co tak właściwie Twój kod ma na celu czynić? Po co w ogóle zastosowanie JavaScript?

  1. <?php
  2. if (isset($_POST['zapisz'])) {
  3. require 'mysql.inc'; /* 
  4. jeśli tutaj nawiązujesz połączenie to koniecznie
  5. zmień rozszerzenie na .php - w przeciwnym wypadku
  6. kod źródłowy twojego pliku jest widoczny przy
  7. bezpośrednim odwołaniu w przeglądarce
  8. (przy domyślnych ustawieniach serwera)
  9. */ 
  10. mysql_query('SET NAMES UTF8');
  11. $query = "INSERT INTO `nabywca` VALUES ('' , '"
  12. . mysql_real_escape_string($_POST['firma']) . "')";
  13. if (mysql_query($query)) {
  14. echo '<script type="text/javascript">move("'
  15. . mysql_real_escape_string($_POST['firma']) . '"); self.close();</script>';
  16. else {
  17. }
  18. } else {
  19. ?>
  20. <form action="<?=$_SERVER['PHP_SELF']?>" method="post" name="formularz">
  21. <table id="tc" style="width: 90%; text-align: center;">
  22. <tr>
  23. <td style="text-align: right; font-weight: bold;">Nazwa firmy:</td>
  24. <td><input type="text" name="firma" id="firma"></td>
  25. </tr>
  26. <tr>
  27. <td>&nbsp;</td>
  28. <td><input type="submit" name="zapisz" /></td>
  29. </tr>
  30. </table>
  31. </form>
  32. <?php
  33. }
  34. ?>
gustaff
Fakt, nie przyłożyłem się za bardzo do opisu, przepraszam.
Strona służy do generowania faktur. Na stronie głównej jest formularz z polami do wpisywania usług oraz pola dotyczące odbiorcy
Kod
           <textarea name="firma" id="firma" cols="30" disabled="disabled"></textarea>
           <input type="text" name="ulica" id="ulica" size="30" disabled="disabled" value=>
           <input type="text" name="kod" id="kod" size="6" disabled="disabled" value=>
           <input type="text" name="miasto" id="miasto" size="20" disabled="disabled" value="">
           <input type="text" name="nip" id="nip" size="13" disabled="disabled" value=>
,
do których dane pobierane są z "popup'a".
Obok są 2 linki :
-pobierz z listy zdefiniowanych odbiorców
-dodaj nowego odbiorcę.
Klikając na którykolwiek otwieramy nowe okno. Chciałem po prostu, aby po dodaniu lub wybraniu odbiorcy dane "przeskoczyły" do formularza w parent.windows bez odświeżania strony, stąd JavaScript.

Dziękuję za pomoc, problem z cudzysłowami zniknął, natomiast mam teraz problem przy pobieraniu odbiorców z listy. Problem powoduje znak spacji w nazwie firmy.

popup z listą odbiorców:
Kod
<script type="text/javascript">
               function move(str) {
               opener.document.getElementById("firma").value = str;
               }
              
               </script>
              
               </head>
               <body>
               <center>
               <table cellpadding="0" cellspacing="0" id="tabela" width=700 class=nabywca><tbody>
               <tr>
               <td class=np width=20>lp</td>
               <td class=np width=220>Firma</td>
               <td class=np width=200>Adres</td>
               <td class=np>Nip</td>
               <td class=np width=50></td>
               </tr>
              
               <?
              
               mysql_query('SET NAMES \'utf8\'');
               $zap="SELECT * FROM nabywca ORDER BY firma ASC";
               $query = mysql_query($zap);
              
              
               $i=1;
               while($wiersz = mysql_fetch_array($query))
               {
               echo '
               <tr height=35>
               <td>'.$i.'</td>
               <td>'.$wiersz[firma].'</td>
               <td>ul. '.$wiersz[ulica].'
               '.$wiersz[kod].' '.$wiersz[miasto].'</td>
               <td>'.$wiersz[nip].'</td>
               <td><a href="#" class="pobierz" onclick=move("'.$wiersz[firma].'");self.close();>pobierz</a></td></tr>';
              
               $i++;
               }
               ?>
               </table>
               </body>


Pozdrawiam
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.