我有一个简单的表单,当用户输入一个代码和一个手机号码时,它应该打开一个新的url,这是我的代码:
<form method='get'>
ID: <input type='text' name='code'><br>
Mobile: <input type='text' name='mobile'><br>
<?php
echo "<button type='button' onclick='location.href=\"http://workflow.abfarmarkazi.ir/phpsql/sms_info.php?id={$_GET['code']}&mob={$_GET['mobile']}\"'>Submit</button>";
?>
</form>
但$_GET
数组的值不会更新,我该怎么办?
答案 0 :(得分:2)
让表单直接在动作网址上提交。点击提交后,您将重定向http://workflow.abfarmarkazi.ir/phpsql/sms_info.php?id=text_id&mob=text_mob
<form method='get' action ='http://workflow.abfarmarkazi.ir/phpsql/sms_info.php'>
ID: <input type='text' name='id'><br>
Mobile: <input type='text' name='mob'><br>
<input type='submit' value='submit'>
</form>
答案 1 :(得分:2)
如果您的表单应该在按钮上的onclick事件中发布到该URL,则它无法工作,因为当前文件中未给出$ _GET值。
只需使用action属性将表单发布到sms_info.php,它就可以了。例如:
<form method='get' action="http://workflow.abfarmarkazi.ir/phpsql/sms_info.php">
ID: <input type='text' name='code'><br>
Mobile: <input type='text' name='mobile'><br>
<input type="submit" value="SMS">
</form>
在你的sms_info.php中,你可以通过$ _GET超全局访问这些值:
<?php
// file: sms_info.php
$id = $_GET['code'];
$mob = $_GET['mobile'];
// ...
?>
答案 2 :(得分:0)
K.I.S.S保持简单愚蠢: - )
<form method='get' action='http://workflow.abfarmarkazi.ir/phpsql/sms_info.php'>
ID: <input type='text' name='id'><br>
Mobile: <input type='text' name='mob'><br>
<input type='submit' onclick='this.form.submit();'>Submit</input>
</form>
当您点击该按钮时,它会向该网址提交正确的获取请求。
答案 3 :(得分:0)
<form method='get' action='http://workflow.abfarmarkazi.ir/phpsql/sms_info.php'>
ID: <input type='text' name='id'><br>
Mobile: <input type='text' name='mob'><br>
<button type='button' onclick='this.form.submit();'>Submit</button>";
</form>
$_GET
超全局被定义为URL字符串的一部分:
http://workflow.abfarmarkazi.ir/phpsql/sms_info.php?code=123&mobile=25642356
在sms_info.php中:
echo $_GET['code']; // 123
echo $_GET['Mobile']; // 25642356
所以$_GET
没有存储在服务器上,而是随HTTP
请求一起传递,$_POST
也是如此,但这会在HTTP标头中传递而不是简单地附加到URL的结尾。