我知道這個話題已經討論了幾次,但我似乎無法找到我做錯了什麼。php變量爲JavaScript與json_encode
我在做什麼: 用戶鍵入一個數字,然後通過單擊按鈕創建一個具有該列數的表格。
繼承人的PHP:
<?php
$twig = require_once('bootstrap.php');
$hostname = 'localhost';
$username = 'root';
$password = '';
$conn = new PDO("mysql:host=$hostname;dbname=mydb", $username, $password);
echo $twig->render('index.html', array());
$numOfRows = 1;
if(isset($_POST['button'])){
$numOfRows = $_POST['num_input'];
}
HTML/JavaScript的:
<html>
<head>
<script>
function insertRows(){
var numOfRows = <?php echo json_encode($numOfRows) ?>;
var out = "<table><tr><th>test</th>";
for (i = 0; i < numOfRows; i++){
out += "<th>test</th>";
}
out += "</tr></table>";
document.getElementById("table").innerHTML = out;
}
</script>
</head>
<body>
<form action="index.php" method="post">
<textarea id="num_input" name ="num_input"></textarea>
<button type="button" name="button" onclick="insertRows()"> Go </button>
</form>
<p id="table"></p>
</body>
</html>
世界上沒有錯誤,或者什麼,因爲我不使用IDE,只是做在vim但錯誤的是隻是不會發生。如果我將for循環中的「numOfRows」更改爲數字,那麼我很確定json_encode是問題所在。
謝謝!
編輯: 只是爲了測試它,我用了一個字符串變量$str = "test";
php文件,而不是使用for循環,我只是編輯JavaScript來
var str = <?php echo json_encode($str); ?>;
alert(str);
,我也試過
var str = <?php echo $str; ?>;
alert(str);
但沒有任何工作。
這就是JS VAR numOfRows不是PHP的一個替代
。爲什麼我必須在JavaScript變量中使用$? – mcCat
你爲什麼使用json? –
爲什麼'numOfRows'實際上是列數的計數? – Phylogenesis