2016-04-06 2 views
0

Ich versuche, eine Zeichenfolge in ein Javascript von PHP übergeben, aber kläglich scheitern. Vom Testen kann ich sehen, dass der Leerraum meinen Test zum Scheitern bringt. Wie kodiere ich, um korrekt an Javascript zu übergeben? Ich probierte% 20 und ein paar mehr scheint nichts zu funktionieren.Übergeben von String-PHP an Jquery mit Leerzeichen

Vollständige Quelle

<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 world"; // fails 
    // $message="hellotom"; // works the spaces cause failure 

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

?> 

Test Output test.php

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

Nur aus Interesse, warum Sie einen klickbaren Link Anker um einen Knopf zu setzen versuchen? Das macht für mich keinen Sinn – RiggsFolly

Antwort

1

Sie können wie etwas tun dieses

<a href="DemoOne('<?php echo addslashes($message) ?>')"> 
    <input class='btn' type='button' value='Test'> 
</a> 

Arbeits-Code (aktualisiert das Skript als auch):

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

function DemoOne(text) { 

    $.ajax({ 
     url: "test.php", 
     type: "GET", 
     data: {text: text} 
    }).done(function(data) { // data what is sent back by the php page 
     $('#PageView').html(data); // display data 
    }); 
} 

<?php 
$message="hello world"; // fails 
// $message="hellotom"; // works the spaces cause failure 

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

?>

+1

Ich mag es funktioniert brilliant vielen Dank! –