2017-02-28 5 views
0

私はスクリプトタグにPHPコードを書こうとしていますが、何かが間違っているようです。ここ は完全なコードです:スクリプトタグにPHPコードを書くには?

<!DOCTYPE html> 
<?php 
if(isset($_GET['column-count'])) 
$var = $_GET['column-count']; 
?> 

<html> 
    <head> 
     <title>Index</title> 
     <script> 

      function send_column_count(){ 
      var col_count = document.getElementById('num-cols').value; 
      alert(col_count); 
      document.getElementById('column-count-id').value = col_count ; 
      var temp = document.getElementById('column-count- id').value; 
      alert(temp); 

      <?php 
       for($i = 0;$i < $var ;$i = $i+1){ 
       $temp = "col".$i; 
      echo " <input type='text' placeholder='column- name' id='" . $temp . "' />"; 
       } 
      ?> 
      alert('Reached here'); 

      return true; 
     } 

</script> 

    </head> 
    <body> 
     <form align="center" method="GET" action="" > 
      <h1>Snippt</h1> 
      <select id="num-cols" onchange="send_column_count()"> 
       <option>1</option> 
       <option>2</option> 
       <option>3</option> 
       <option>4</option> 
       <option>5</option> 
      </select> 

      <input type="hidden" name="column-count" id="column-count-id" value="7" /> 
      <input type="submit" name="Submit" value="Create Table" /> 

     </form> 
    </body> 
</html> 

今、コンソールにエラーメッセージを示しています。予期しないトークン< を私が間違って何が起こっているのか理解することはできませんよ!

+2

なぜスクリプトタグの内部にHTMLを書いていますか? – mehulmpt

+0

'<?php'ブロックをスクリプトタグ – mehulmpt

+0

の外側に移動します。間違っています... Mehulは、javascriptの中にHTMLコードを載せました。 – Roy

答えて

0

あなたの元のロジックには完全な欠陥があります。動的にフィールドを追加するためにPHPを必要としません。しかし、とにかく、私は一種のあなたはそれが(PHPで)仕事をしたいと同じように動作するアプリの正しいバージョンを掲示しています:

<!DOCTYPE html> 
<?php 
$var = 0; 
if(isset($_GET['column-count'])) 
$var = $_GET['column-count']; 
?> 

<html> 
<head> 
<title>Index</title> 
<script> 

     function send_column_count(){ 
      var col_count = document.getElementById('num-cols').value; 
      alert(col_count); 
      document.location.href = location.href.split('?')[0]+"?column-count="+col_count; 
     } 

</script> 

</head> 
<body> 
<?php 
       for($i = 0;$i < $var ;$i = $i+1){ 
        $temp = "col" . $i; 
        echo " <input type='text' placeholder='column- name' id='" . $temp . "' />"; 
       } 
      ?> 
<form align="center" method="GET" action="" > 
    <h1>Snippt</h1>  
    <select id="num-cols" onchange="send_column_count()"> 
     <option>1</option> 
     <option>2</option> 
     <option>3</option> 
     <option>4</option> 
     <option>5</option> 
    </select> 

    <input type="hidden" name="column-count" id="column-count-id" value="7" />  
    <input type="submit" name="Submit" value="Create Table" /> 

</form> 
</body> 
</html> 

はEDIT:JS方法:

function send_col_count() { 
var col_count = document.getElementById('num-cols').value; 
var htmlConstructed = ""; 
for(i=0;i<col_count;i++) { 
htmlConstructed += "<input type='text' id='col"+i+"' />"; 
} 
document.getElementById('myCustomFields').innerHTML = htmlConstructed; 
} 

// and somewhere in body: 

<div id="myCustomFields"></div> 
+0

私は完全にjavascriptを使うともっと簡単になりますが、これを行う唯一の理由は、ユーザーがテキストフィールドに挿入する値を、さらにmysqlのテーブルを作成するPHPファイルに送る必要があることです。 だから、私はそれをJavaScriptのやり方でやってみると、ちょっと複雑になって、その場合はAJAXを使ってデータをphpファイルに送ります。 –

+0

php/jsのバージョンが分かります。 – mehulmpt

関連する問題