2011-08-01 111 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

抱歉评论早...现在完成:) –