2014-01-15 3 views
1

Мне просто интересно, что я не могу решить до сих пор.Передача переменной javascript в php-файле на html

У меня есть один файл php со следующим кодом.

doInit.php

<? 
    include 'connect.php'; 
    session_start(); 
    if(isset($_SESSION['detailid'])){ 
     $detailid = $_SESSION['detailid']; 
     $resutlinit=mysql_query("select Nama,Kelas,Ranking,Level,Exp,Sekolah from MsDetail where DetailID='$detailid'"); 

     if(mysql_num_rows($resutlinit)!='0'){ 
      $row = mysql_fetch_array($resutlinit); 
      $nama = $row['Nama']; 
      $kelas = $row['Kelas']; 
      $ranking = $row['Ranking']; 
      $level = $row['Level']; 
      $exps = $row['Exp']; 
      $sekolah = $row['Sekolah']; 
     }else echo("Nothing here, try to more detail on your code"); 
    }else {header("location:index.html");} 

?> 
<script type="text/javascript"> 
    var nama = "<?= $nama ?>"; 
    var kelas = "<?= $kelas ?>"; 
    var ranking = "<?= $ranking ?>"; 
    var level = "<?= $level ?>"; 
    var exps = "<?= $exps ?>"; 
    var sekolah = "<?= $sekolah ?>"; 
    //document.writeln(nama); 
    //document.writeln(kelas); 
    //document.writeln(ranking); 
    //document.writeln(level); 
    //document.writeln(exps); 
    //document.writeln(sekolah); 
</script> 

, и я хочу написать файл JavaScript на моих внутри делах.

Это то, что я написал в редакторе div.

<script type="text/javascript"> 
    document.writeln(nama); 
</script> 

и это не работает.

Я пытался добавить в исходные тексты вещи на PHP файл как

<script type="text/javascript" src="target.html"></script> 

но не везет.

и я пытался добавить, что SRC в целевой HTML как

<script type="text/javascript" src="doInit.php"></script> 

и это тоже не работает для меня.

Любое предложение, как решить эту проблему? Спасибо за внимание :)

Извините за редактирование после 2 ответов здесь.

+0

Вы получаете ожидаемое значение в var 'nama'? – Rikesh

+0

Нет, это просто пусто. В target.html ничего не отображается на нем. Я хочу, чтобы я мог поместить var nama в php-файлы в текстовое поле, которое я поместил в target.html. Это возможно? Извините, если мой язык - это хары или что-то в этом роде, мой основной язык не английский. –

+2

попробуйте 'var nama =" ";' Вместо этого вместо 'console.log (nama)' вместо 'writeln() посмотреть, что вы получаете. вы проверили, получаете ли вы результаты от mysql? не используйте mysql_ * в php. вместо этого используйте mysqli или PDO. – adamS

ответ

2

Во-первых, чтобы установить значение текстового поля document.writeln не то, что вам нужно. Вы должны сделать это так:

<input id="myInput" type="text"/> 
<script type="text/javascript"> 
document.getElementById('myInput').value = myInputValue; 
</script> 

Кроме того, вы должны быть уверены, что все необходимые JS загружены в соответствующем порядке.

ПРИМЕЧАНИЕ: Я вижу, вы не используете фреймворк PHP. Таким образом, один из возможных подходов, который я мог бы предложить здесь для оптимизации вашего кода, - это использовать стандартную функцию PHPjson_encode. Но тогда вы должны усугублять все ваши JS вары в один объект:

PHP:

<?php 
// Database work 
if(mysql_num_rows($resutlinit)!='0'){ 
    $row = mysql_fetch_array($resutlinit); 
} 
// ... 
?> 
<html> 
<head> 
<script type="text/javascript"> 
var data = <?php echo json_encode($row); ?>; 
</script> 
</head> 
<body> 
    <form> 
     <input id="myInput" type="text"/> 
    </form> 
    <!-- Here your form is already loaded --> 

    <!-- Perform any JS activity on page at end of body --> 
    <script type="text/javascript"> 
     document.getElementById('myInput').value = myInputValue; // As it goes in database row 
    </script> 
</body> 
</html> 

UPD: Если вам нужно присвоить input значение только на странице загрузки, вы можете сделать это очень просто :

<input id="namaInput" type="text" value="<?php echo $row['Nama']"/> 
+0

Мне нужно написать вещь src в my target.html, чтобы это сработало? –

+0

Пожалуйста, см. Обновленный ответ – oxfn

+0

не работает. проблема в том, что мне нужно остаться target.html в виде html-файла, я не могу его изменить в расширение php-файла. Есть идеи? –

0

document.writeline() заменяет содержимое всей страницы аргументом, предоставленным ему.

Для предварительного просмотра значения переменной используйте console.log() или, в более экстремальных случаях использования, alert().

Что касается использования этих значений в HTML-документе, вы можете использовать:

<input type="text" id="myNamaInputField" /> 

И в вашем яваскрипте кода:

var nama = "<?= $nama ?>"; 
document.getElementById("myNamaInputField").value = nama; 

Каким будет заполнить ваше поле ввода с значением JavaScript переменная.

Обратите внимание на то, чтобы поставить свой код javascript после ваших HTML-элементов в документе или задержать его выполнение до тех пор, пока DOM не будет готов к использованию.

Редактировать: Чтобы добавить текст javascript к странице, создайте элемент div, p или span с переменным текстом и добавьте его в DOM.

В вашем яваскрипта код:

var nama = "<?= $nama ?>"; 
var myNamaDiv = document.createElement('div'); 
myNamaDiv.innerHTML = nama; 
document.body.appendChild(myNamaDiv); 
+0

что делать, если я хочу, чтобы он писал, как обычный текст? Я имею в виду без текстового поля, как писать случайный текст в ? –

+0

В этом случае очень рекомендуется создать новый элемент div, p или span с вашим значением и добавить его в DOM. Я отредактировал свой ответ, чтобы включить способ, которым вы можете это сделать. – user1853181

Смежные вопросы