2011-08-01 110 views
0

我寫了這樣的事情在PHP多提交按鈕PHP

<script type="text/javascript" src="jquery.js"></script></script> 
<script type="text/javascript"> 
function get(){ 
$.post('output.php', { name: form.name.value }, 
function(output) { 
    $('#age').html(output).show(); 

}) ; 

} 

</script> 

<body> 
<p> 
<form name="form"> 
id: 
<input type ="text" name="name"><input type ="button" name="Submit_1" value ="Get   
Existing Data" onclick="get();">//gets info from DB 

<p>url: <input type="text" name="calc_url"/></p> 
<option value="abc">abc</option> 
</select><br/> 
<input type="submit" name="Submit_2" value="submit" /> 
</form> 
<div id="title"></div> 
</p> 
</body> 
</html> 

Output.php

<?php 
Connect to DB 

$name = mysql_real_escape_string($_POST['name']); 


if(isset($_POST['submit1'])){ 
if ($name==NULL) 
echo "please enter an id!"; 
else 
{ 
$age= mysql_query("SELECT title FROM parentid WHERE id ='$name'"); 
$age_num_rows = mysql_num_rows($age); 
    if ($age_num_rows==0) 
    echo "id does not exist"; 

else 
{ 
$sql ="SELECT * FROM parentid WHERE id = '$name'";  
$result = mysql_query($sql); 
while($row = mysql_fetch_array($result)) 
{ 
$abc_output= "Existing data of the record <br />";  
$abc_output .="Title: " . $row['title'] . "<br />" ; 
$abc_output .="Report No: " . $row['reportno'] . "<br />" ; 
$abc_output .="URL: " . $row['calc_url'] . "<br />" ; 
$abc_output .="Institution: " . $row['institution'] . "<br />" ; 
} 
} 
echo $abc_output; 
} 
} 
if (isset($_POST['Submit_2'])) { 

$value = mysql_real_escape_string($_POST['name']); 
$value1 = mysql_real_escape_string($_POST['title']); 
$sql = " UPDATE parentid SET title='$value1' WHERE id ='$value'"; 
if (!mysql_query($sql)) 
{ 
die ('Error:' .mysql_error()); 

} 
} 



?> 

這是我做了什麼,它不工作! 但是,如果上面是單獨完成即沒有如果(isset()函數),它的工作原理(一鍵單獨考慮)

+2

如果你的第一個提交按鈕不發送任何數據到服務器,爲什麼不只是讓一個普通的''

+0

沒有我做同樣的事情? –

回答

7

您可以檢測其提交的按鈕已經被檢查按下狀態的存在:

if (isset($_POST['Submit_2'])) { 
    // "Submit_2" submit button was clicked 
} 

編輯:

  1. 你的HTML語法不正確。
  2. if(isset($_POST['name'])而不是if(isset($_POST['submit1']),因爲參數名稱爲name,由$.post() jQuery的方法的第二個參數指示:$.post('output.php', { name: form.name.value },
  3. documentation of jquery.post告訴我們,查詢字符串(在POST或GET請求)從建該方法的第二個參數。這意味着超全局的$_POST只有一個鍵值對。測試通過在您的PHP腳本的頂部寫入print_r($_POST)
  4. 不建議使用不推薦的Javascript方法,例如:form.name.value。相反,通過引用它的id(最佳方法)來獲取DOM對象的值。舉例來說,如果你輸入按鈕有一個<input ... id="button1" />,然後把它拿來與$('#button1').val()
  5. 值嘗試是這樣的:

    <form> 
    <input type="text" name="name" value=""> 
    <input type="button" name="submit1" value="Submit1" id="g1" /> 
    <input type="button" name="submit2" value="Submit2" id="g2" /> 
    </form> 
    <script type="text/javascript" src="jquery.js"></script></script> 
    <script type="text/javascript"> 
    $('input[name^="submit"]').click(function() { 
        submit_name = $(this).attr('name') 
        submit_value = $(this).val() 
        $.post('output.php', { submit_name: submit_value }, 
        function(output) { 
         // do something 
        }); 
    }); 
    </script> 
    

    從來沒有一個真正的提交表單的,但它是通過AJAX發送,從而沒有輸入類型submit

+0

非常感謝..但我試過它沒有工作..我編輯了問題pllzz檢查出來.. –

+0

什麼是Javascript'get()'函數呢?嘗試使用'print_r($ _ POST)'查看通過AJAX發送的HTTP POST請求發送的所有變量。 – Dor

+0

抱歉評論早...現在完成:) –