2016-04-05 22 views
1

PHP'den bir javascript içine bir dize iletmeye çalışıyorum ama sefil bir şekilde başarısız oluyor. Testten, testimi başarısız hale getiren beyaz boşluğunu görebiliyorum. Javascript'e geçmek için nasıl kodlayabilirim?% 20 denedim ve bir kaç şey işe yaramaz gibi görünüyor.Geçiş dizesi PHP'yi Javascript Spaces'a çevirme

Tam Kaynak

<script async src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 
<script type="text/javascript"> 

function DemoOne(text) { 
$('#PageView').load('test.php?text=' + text); 
} 
</script> 


<?php 
$message="hello"; 

echo " <a href=\"javascript:DemoOne('$message');\" ><input class='btn' type='button' value='Test'></a>  
<div id='PageView'></div>"; 

?> 

Test Çıkış test.php

<?php 
echo $_GET['text']; 
?>  

hala sadece çıkarmadan alanlarda bu Yukarıdaki örnek çalışmasını sağlayacak gibi görünüyor başarısız aşağıdaki kodu ekleme YUKARI

TAKİP.

a href=\"javascript:DemoOne(".htmlspecialchars(json_encode($message)).");\" ><input type='button' value='Submit'></a> 
<div id='PageView'></div> 
+1

Olası yinelenen (ve kaçış newlines)] (http://stackoverflow.com/questions/168214/pass-a-php-string-to-a-javascript-variable-and-escape-newlines) –

cevap

2

Bu boşluklar ile ilgisi var. Ve bize tam kodu vermedin. Bence bu HTML bir yankı içinde mi? Eğer öyleyse, bunu yapmak gerekir:

echo "<a href=\"javascript:DemoOne(".htmlspecialchars(json_encode($message)).");\" ><input type='button' value='Submit'></a> 
<div id='PageView'></div>"; 

yani json_encode herhangi bir veri olduğunu JavaScript için pas. Ayrıca, bir <script> etiketine karşılık olarak bir öznitelik içerdiğinden HTML için de onu ayırmanız gerekir. URL için sorgu parametresinden kaçmanız da gerekir. jQuery kaçışa yapalım, Alternatif

<script async src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 
<script type="text/javascript"> 

function DemoOne(text) { 
$('#PageView').load('test.php?text=' + encodeURIComponent(text)); 
} 
</script> 


<?php 
$message="hello"; 

echo " <a href=\"javascript:DemoOne(".htmlspecialchars(json_encode($message)).");\" ><input class='btn' type='button' value='Test'></a>  
<div id='PageView'></div>"; 

:

Ben kodlama sorunları gidermek için kodunuzu tadil [bir JavaScript değişkeni için bir PHP dize iletin ait

function DemoOne(text) { 
$('#PageView').load('test.php', {text:text}); 
} 
+0

Tam kaynak eklemek için yukarıda değiştirdiğim yardım için teşekkürler Ancak kod hala başarısız olur. Eğer $ message = "merhaba" yaparsam (boşluk olmayacaksa) yanlış gittiğim başka fikirlerim var mı? –

+0

@CliveAtkins Tam kod bu değil. Bu HTML'yi nasıl veriyorsunuz? Emin değilseniz tüm .php dosyasını yapıştırın. – mpen

+0

@CliveAtkins Ah ... tamam, ayrıca URL paramından kaçmanız gerekiyor. Bunu JS'de [encodeURIComponent] ile yapabilirsiniz (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent). Cevabım için tam bir örnek ekledim. – mpen