2014-01-30 67 views
1

下面的代碼主要是它應該做的。它抓取前一頁中的$ id,並使用它在數據庫中搜索該ID並顯示結果。我試圖到達顯示當前$ Name變量的位置,然後允許用戶使用表單更改名稱。因此,當用戶將名稱更改爲新名稱時,理論上表單會將新結果提交到新頁面,並且還帶有$ id變量,以便我可以繼續並將數據放入同一字段。目前只有$ id被傳遞,我在提交#NewName輸入時遇到問題。我嘗試使用「隱藏」輸入,但由於它是動態的,因此不起作用。怎麼可能發送兩者?PHP/Javascript - 提交表單輸入及其值

<head> 
<script type="text/javascript"> 
function SendEmail(button, db_ID) { 

    //document.getElementById("ImpactNotifications").submit(); 
    window.open ('changenameto.php?db_ID='+db_ID,'newWin', 'width=600,height=200'); 
} 
</script> 

</head> 
<body style="color: #black; background-color: #0000FF;"> 
<?php 

$id = $_GET['id']; 

$sql = "SELECT * FROM DBTABLE WHERE ID=$id"; 

$db_ID1=odbc_exec($conn,$sql); 
$db_ID = odbc_result($db_ID1,1); 

echo "<strong>Name:</strong>"; 
echo "<br />"; 

$rs=odbc_exec($conn,$sql); 
while($row = odbc_fetch_array($rs)) 
{ 
$Name=odbc_result($rs,"Name"); 
echo "$Name"; 
echo "<br />"; 
echo "<form method='post' name='ChangeName' enctype='multipart/form-data'>"; 
echo "<br />"; 
echo "<strong>Name Changed To:</strong><br />"; 
echo "<input name='NewName' type='text' style='width: 500px; height: 24px;' />"; 
echo "<br />"; 
echo '<br /><input type="submit" name="ChangedMe" value="Name Modified" onclick="SendEmail(this, ' . $db_ID . '); return false;" /><input name="Clear" type="reset" value="Reset" /><br />'; 
echo "</form>"; 
} 

?> 

UPDATE

<head> 
<script type="text/javascript"> 
function SendEmail(button, db_ID) { 

document.getElementById('db_ID').value = db_ID; // inserting db_ID in hidden 
    document.forms['ChangeMeetingName'].submit(); // submitting form 
} 
</script> 

</head> 
<body style="color: #black; background-color: #0000FF;"> 
<?php 

$id = $_GET['id']; 

$sql = "SELECT * FROM DBTABLE WHERE ID=$id"; 

$db_ID1=odbc_exec($conn,$sql); 
$db_ID = odbc_result($db_ID1,1); 

echo "<strong>Name:</strong>"; 
echo "<br />"; 

$rs=odbc_exec($conn,$sql); 
while($row = odbc_fetch_array($rs)) 
{ 
$Name=odbc_result($rs,"Name"); 
echo "$Name"; 
echo "<br />"; 
echo "<form action='changenameto.php' method='post' name='ChangeName' enctype='multipart/form-data'>"; 
echo "<br />"; 
echo "<input name='db_ID' id='db_ID' type='hidden' value='' />"; 
echo "<strong>Name Changed To:</strong><br />"; 
echo "<input name='NewName' type='text' style='width: 500px; height: 24px;' />"; 
echo "<br />"; 
echo '<br /><input type="submit" name="ChangedMe" value="Name Modified" /><input name="Clear" type="reset" value="Reset" /><br />'; 
echo "</form>"; 
} 

?> 
+0

你忘了action屬性添加到窗體標籤'<形式行動=「」方法=「後」 ...'如果php在同一頁面上執行 – 2014-01-30 23:50:33

+0

@ user3052629,則爲空 - 我確實擁有它,但是當我提交表單時,它沒有攜帶變量 – Yusof

+0

,所以使用SESSION來執行值 – 2014-01-30 23:58:52

回答

1

好了,我在想是不是很容易,如果形式可以是在同一個窗口過程。我做了一點研究,發現這個How do I make a PHP form that submits to self?。這在我看來會比擁有更多頁面並且擔心從一個頁面到另一個頁面的數據更好。所以我最終做的是將表單標題的動作部分留空。

echo "<form action='' method='post' name='ChangeName' enctype='multipart/form-data'>"; 

然後在循環後,我說:

if(isset($_POST['submit'])) 
{ 
$NewName = $_REQUEST['NewName']; 
echo "$NewName"; 
echo "$id"; 
} 

所以現在我希望我可以繼續沒有任何問題!

更新: 我忘了提,我還拿出了JavaScript的功能,因爲它不再需要