2013-02-19 67 views
-4


我試圖在php中調用簡單的javascript函數。我無法調用showResult()函數,我不知道這段代碼有什麼問題。你能檢查我嗎?我感謝您的幫助。
http://www.mediafire.com/?hycdzegki1n79lg
與問候,javascript與php無法正常工作

更新:是的。我知道這是一個修復性問題(也是一個現在被否定的結論),但我認爲問題是不同的。其實,我可以寫出類似於此的其他類似的東西,只是因爲我爲此而卡住了。我不能在這裏發佈完整或必要的功能,因爲在我發佈後,它變得雜亂無章。我很抱歉給你麻煩。我應該上傳什麼鏈接?

<?php 
echo '<select name="companyNameList" onchange="showResult()" >'; 
for ($row = 0; $row < 2; $row++) 
{ 
echo '<option value="'.$placement[$row]["company_name"].'">'.$placement[$row] ["company_name"].'</option>'; 
} 
echo '</select>'; 
?> 
+0

可能的重複的相關部分 – Gordon 2013-02-19 08:42:06

+0

您不調用該函數,您只是打印一個選擇。我認爲你的JavaScript代碼是不正確的。 – jcesarmobile 2013-02-19 08:43:55

+0

什麼不行? php代碼看起來不錯。但標題沒有意義:php不會調用JavaScript函數。當查看呈現的html頁面並更改選定的選項時,可以調用js函數。請提供更多詳細信息 – Imperative 2013-02-19 08:44:14

回答

0

有幾個問題。

HTML的結構和形式的標籤是不正確的,他們應該是在身體

<html> 
    <head> 
     <script> 
     </script> 
    </head> 
    <body> 
    <form> 
    </form> 
    </body> 
</html> 

這是結構應該遵循

他們的方式你寫你的onChange功能是正確的,但問題在我看來是在showResult JS功能

的功能你用

<script type="text/javascript"> 
function showResult() 
{ 
    var companyName = companyNameList.value; 
    var insertvalue = d.getElementById('lblCompanyName'); 
    insertvalue.innerHTML = companyName 
    // document.getElementById("lblCompanyName").value=document.getElementById("companyNameList").value; 
     <?php echo "hi";?> 

} 
</script> 

請注意,<?PHP echo 'hi'; ?>只會在JS中輸出'hi',這意味着什麼也不會導致JS錯誤。你應該使用這樣

<script type="text/javascript"> 
function showResult() 
{ 
    var companyName = companyNameList.value; 
    var insertvalue = d.getElementById('lblCompanyName'); 
    insertvalue.innerHTML = companyName 
    // document.getElementById("lblCompanyName").value=document.getElementById("companyNameList").value; 
     <?php echo "alert('hi');";?> 

} 
</script> 

我希望這將解決你的問題

編輯

給一個id你的下拉列表中選擇companyNameList

<script type="text/javascript"> 
    function showResult() 
    { 

     <?php echo "alert('hi');";?> 
     var companyName = document.getElementById("companyNameList"); 
     var companyNameValue = companyName.options[companyName.selectedIndex].value; 
     var insertvalue = document.getElementById('lblCompanyName'); 

     insertvalue.innerHTML = companyNameValue; 
    } 
</script> 

請在你的Firefox安裝firebug捕捉任何錯誤,在腳本

編輯完整代碼

檢查這個代碼

<?php 
$link = mysqli_connect('localhost', 'root', '','xerox_test'); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 
$statement = "SELECT * from form_results"; 
$result = mysqli_query($link,$statement); 
$placement= array(); 
$i=0; 
while($row = mysqli_fetch_array($result)) 
{  
    $rowktl[$i] = $row; 
    $placement[$i]['company_name'] = $rowktl[$i]['company_name']; 
    $i++; 
    } 
?> 
<html> 

<head> 
<script type="text/javascript"> 
    function showResult() 
    { 

     <?php echo "alert('hi');";?> 
     var companyName = document.getElementById("companyNameList"); 
     var companyNameValue = companyName.options[companyName.selectedIndex].value; 
     var insertvalue = document.getElementById('lblCompanyName'); 

     alert(companyNameValue); 
     insertvalue.innerHTML = companyNameValue; 
    } 
</script> 
</head> 
<body> 
<form method="post" action=""> 
<p>Select the data</p> 
<?php 
echo '<select name="companyNameList" id="companyNameList" onchange="showResult()" >'; 
for ($row = 0; $row < 2; $row++) 
{ 
    echo '<option value="'.$placement[$row]["company_name"].'">'.$placement[$row]["company_name"].'</option>'; 
} 
echo '</select>'; 
?> 
<br> 
<input name="Submit" type="button" class="Submit" value="Submit" onClick="showResult()" /> 
<table border=2> 
    <tr> 
     <td>Case Number <br></td> 
     <td>Technican ID <br></td> 
     <td>Company Name <br><label id="lblCompanyName">Here</label> </td> 
    </tr> 
    <tr> 
     <td>Model Number <br></td> 
     <td>Machine Serial Number<br></td> 
     <td>Company Address<br></td> 
    </tr> 
    <tr> 
     <td>Customer Name<br><?php echo json_encode($placement[0]['customer_name']);?></td> 
     <td>Customer Email<br></td> 
     <td>Contact Number<br></td> 
    </tr> 
    <tr><td colspan=3>Remark<br></td></tr> 
</table> 
</form> 
</body> 
</html> 

我已經添加了id="companyNameList"<select>循環中的php代碼。還更新了JS功能。

現在如果你使用這個,你能看到alert中的選定值嗎?如果你看不到這意味着我們還沒有獲得選定的價值。如果您看到適當的值,則表示分配不正確。

+0

感謝您的幫助。我寫了粗略的,我沒有遵循。我根據你所說的改變了。但是,它仍然沒有更新標籤。我可以在下拉列表中看到所需的文本(將更新爲標籤)。所以,我認爲showResult()不起作用。 – 2013-02-19 09:06:06

+0

它是否給出了HI中的提示信息? – 2013-02-19 09:20:54

+0

請檢查此問題的JS修復http://stackoverflow.com/questions/1085801/how-to-get-the-selected-value-of-dropdownlist-using-javascript我也更新了我的答案 – 2013-02-19 09:23:17

0

javascript不是問題,我爲你做了一個簡單的js小提琴,我認爲問題在於你的php代碼以及它產生了什麼。你能發佈PHP代碼呈現的完整html嗎?

我認爲$placement[$row]['company_name']可能不包含字符串。

在這裏jsfiddle向你展示js。 http://jsfiddle.net/HWFQH/1/

否則請嘗試此操作,如果它在您的視圖/ html代碼中,可能會更容易閱讀。

<select name="companyNameList" onchange="showResult()"> 
<?php for ($row = 0; $row < 2; $row++):?> 
    <option value="<?php echo $placement[$row]["company_name"];?>"> 
      <?php echo $placement[$row]["company_name"];?> 
     </option> 
<?php endfor;?> 
</select> 
+0

感謝您的幫助..我可以在下拉列表中看到所需文字(將更新爲標籤)。所以,我認爲showResult()不起作用。我想在這裏發佈,但我認爲沒有足夠的空間。我可以知道我可以傳給你嗎? – 2013-02-19 09:16:30

+0

@KhantThuLinn:編輯您的第一個問題,提供所有必要的信息和源代碼。 – oktopus 2013-02-19 09:35:58