我创建了我的第一个网站,主要包括php和jQuery以及一些JavaScript,一切都在Firefox上工作正常,我的问题是在chrome上,每当我在特定标签中提交表单时,它运行一切,但随后重定向到索引而不是打印结果
以下是我的功能
function cshoptab(tab) { // for register.php
var tab = tab;
switch (tab) {
case 'weapons':
$("#cshopwrap").html('Loading').show();
$("#cshopwrap").load('php/cshop/weapons.php');
break;
case 'helms':
$("#cshopwrap").html('Loading').show();
$("#cshopwrap").load('php/cshop/helms.php');
break;
case 'suits':
$("#cshopwrap").html('Loading').show();
$("#cshopwrap").load('php/cshop/suits.php');
break;
case 'gloves':
$("#cshopwrap").html('Loading').show();
$("#cshopwrap").load('php/cshop/gloves.php');
break;
case 'boots':
$("#cshopwrap").html('Loading').show();
$("#cshopwrap").load('php/cshop/boots.php');
break;
case 'style':
$("#cshopwrap").html('Loading').show();
$("#cshopwrap").load('php/cshop/style.php');
break;
case 'costumes':
$("#cshopwrap").html('Loading').show();
$("#cshopwrap").load('php/cshop/costumes.php');
break;
case 'pets':
$("#cshopwrap").html('Loading').show();
$("#cshopwrap").load('php/cshop/pets.php');
break;
}
}
function cshopsenditem(idxvalue, opt, duration) {
$("#content").html('Loading purchase').show();
var idxvalue = idxvalue.split('x');
var idx = idxvalue[0];
var price = idxvalue[1];
var url = "php/cshop.php";
$.post(url, {idx: idx, price: price, duration: duration, opt: opt}, function(data) {
$("#content").html(data).show();
});
}
PHP:
<?php
include 'functions.php';
session_start();
if($_SESSION['username']){
$username=$_SESSION['username'];
if($_POST){
$price=$_POST['price'];
$idx=$_POST['idx'];
$opt=$_POST['opt'];
$duration=$_POST['duration'];
$cashstring = cshop($username, $opt, $duration, $idx, $price);
echo $cashstring;
}
?>
表格:
<form name=form method='post' onsubmit='cshopsenditem(document.getElementById("idx").value,
null,
document.getElementById("duration").value)'>
<table>
<tr>
<td rowspan=9><img src=cimg/style.png></td>
<td>Item: </td>
<td>
<select name=idx id='idx' onchange='updateprice(document.getElementById("idx").value)'>
<option value=901x100>Change Kit - Hair Style (Novice)</option>
<option value=904x100>Change Kit - Hair Color (Normal)</option>
<option value=906x100>Change Kit - Face (Novice)</option>
</select>
</td>
</tr>
<tr>
<td>Restriction: </td>
<td>Account Binded</td>
</tr>
<tr>
<td>Duration: </td>
<td>Permanent</td>
</tr>
<tr>
<td>Price: </td>
<td><div id='price'>100</div></td>
</tr>
<tr>
<td colspan=2 class='cshopbuybutton'>
<input name=duration id='duration' type=hidden value=31>
<input name=buybutton type=submit class='button' value='BUY NOW'>
</td>
</td>
</table>
</form>
答案 0 :(得分:0)
也许是因为你不想刷新你的页面...... 如果我错了,就忽略它。
$.post(url, {idx: idx, price: price, duration: duration, opt: opt}, function(data) {
$("#content").html(data).show();
});
return false; //Missed this line
当您从$.post
或$.ajax
提交表单时,您无需在onSubmit()
中指定form
方法,请尝试提供id
为您的表单和执行$('#myform').click(function(){});
答案 1 :(得分:0)
对于迟到的答案我很抱歉,原因是因为谷歌浏览器因某些原因不允许onsubmit事件,我不得不将其更改为onclick。