2015-05-29 140 views
0

我有使用JavaScript(我敢新進入這個語言)的一個問題執行一個JavaScript腳本

我的問題是內部的PHP腳本:我有一個JavaScript腳本,它增加了表單字段時,你點擊一個按鈕,然後通過增加它來改變它們的名字。 然後將數據存儲到數組中。當我保存完這些填充的字段時,我需要將它們還原並將它們顯示爲<input type="text" value="<?php $myvalue[] ?>"/>。問題是,我需要將它寫入JavaScript文件,我不知道它如何將內部解釋爲PHP腳本。

這是我已經試過:

var counter = 1; 
var limit = 10; 
var new_div = '<?php echo json_encode($arraySpecialite['+ counter +']); ?>'; 
function addInput(divName){ 
if (counter == limit) { 
     alert('You cannot add more than' + counter + ' fields'); 
} 
else { 
     var newdiv = document.createElement('div'); 
     newdiv.innerHTML = 'Specialité ' + (counter + 1) + ' <br><input type="text" name="specialite[]" id="specialite[]"" value="'+ new_div +'">'; 
     document.getElementById(divName).appendChild(newdiv); 
     counter++; 
} 
} 

感謝的提前。

+0

Javascript在瀏覽器中運行。瀏覽器不知道PHP是什麼。基本上你不能做你想這樣做的事情。 – RiggsFolly

+0

@RiggsFolly基本上說了什麼。你可以從PHP獲得你需要的任何值,將它們傳遞給模板,然後在你的js腳本中使用它們。 – Andrew

+0

是的,這就是爲什麼我正在尋找一種方法。你有什麼建議 ? – Rameleu

回答

1

你可以做的事情型動物:

在返回初始視圖PHP,返回包含將保持數據的JavaScript的響應。

如:

<script> 
    var new_div = '<?php echo json_encode(array(1,2,3)); ?>' 
</script> 

所以,如果你的JavaScript在同一範圍內運行,或在內部範圍內,將有機會獲得該變量。

OR

做一個AJAX請求,並從服務器讀取

xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
     console.log(xmlhttp.responseText); 
    } 
} 
xmlhttp.open("POST","myscript.php",true); 
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
xmlhttp.send("name=Shikaka&lastname=Ventura"); 

響應時myscript.php收到它要求工作(請確保您躲避值)然後返回迴應

<?php 
    echo json_encode(array(1,2,3)); 
1

當您向服務器提交HTTP請求時(服務器,POST,GET等),服務器將讀取您的服務器腳本並相應地執行操作,但使用JavaScript時,它是您的網絡瀏覽器的行爲人。如果你想讓你的腳本工作,你需要做以下的事情。

  1. 寫一個獨立的PHP腳本(它自己的文件)。

  2. 使用Javascript向PHP腳本提交HTTP請求(您可以發送任何你想要的)。

  3. 從PHP文件訪問響應並執行任何您想要的操作。

+0

答案的最後部分是正確的,但第一部分是混淆的。 PHP無法執行JavaScript和反之亦然。但PHP可以在響應中嵌入JavaScript,然後可以執行它,並且Javascript可以在請求中嵌入PHP,並且也可以在PHP端執行。 – ecarrizo

+1

我會編輯以適應。 – ScarletMerlin