无法以任何方式处理来自Ajax的响应

时间:2014-11-04 11:38:08

标签: javascript php jquery ajax

我正在尝试运行一个网站,我正在使用Ajax / Jquery,以便与PHP脚本进行通信,而PHP脚本又应返回特定数据,具体取决于我在html网站上选择的选项。我已经设法将从网站发送的数据发送到php脚本,我已经设法在我选择的DIV中显示结果,但我似乎无法改变从PHP脚本发回的内容。

所以,这是我到目前为止所得到的(对于可能很糟糕的代码感到抱歉,我是ajax,jquery和bootstrap的新手):



<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<head>
	<script>
		$("document").ready(function(){
			$("#kco_settings").submit(function(event)
			{
					$("#result").html('');
					var data = {
						"action" : "generate_kco"
					};

			data = $(this).serialize() + "&" + $.param(data);
			$.ajax({
				type:"POST",
				dataType:"json",
				url:"_kco/checkout.php",
				data:data,
				success:function(data){
					$("#result").html(data["json"]);
					alert("Success!" + data["json"]);
				}
			})

			return false;
			});
		});
	</script>
</head>
<body>
<?php
	require_once 'src/Klarna/Checkout.php';
			session_start();

?>
<div class="row">
	<div class="col-lg-3"></div>
	<div class="col-lg-6">
			<center> <h1> KCO </h1> </center>
	</div>
	<div class="col-lg-3"></div>
	</div>
<div class="row">
	<form name="kco_settings" id="kco_settings" method="POST">
	<div class="col-lg-3 border-custom kco-customize-box">
		<div class="form-group" id="kco-settings">
			<div class="row">
				<div class="col-lg-12">
					<label class="label-custom" for="kco_country"> Country/Language setting </label>
				</div>
			</div>
			<div class="row">
				<div class="col-lg-12">
					<label class="radio-inline">
						<input type="radio" name="kco_country" value="se" checked> SV-SE  </input>
					</label>
					<label class="radio-inline">
						<input type="radio" name="kco_country" value="sv_fi"> SV-FI </input>
					</label>
					<label class="radio-inline">
						<input type="radio" name="kco_country" value="fi"> FI </input>
					</label>
					<label class="radio-inline">
						<input type="radio" name="kco_country" value="no"> NO </input>
					</label> <br>
					<label class="radio-inline">
						<input type="radio" name="kco_country" value="de"> DE </input>
					</label>
				</div>
			</div>
			<div class="row">
				<div class="col-lg-12">
					<label class="label-custom" for="kco_gui"> GUI Setting </label> 
				</div>
			</div>
			<div class="row">
				<div class="col-lg-12">
					<label class="radio-inline">
						<input type="radio" name="kco_gui" value="desktop" checked> Desktop Layout </input>
					</label>
					<label class="radio-inline">
						<input type="radio" name="kco_gui" value="mobile"> Mobile Layout </input>
					</label>
				</div>
			</div>
			<div class="row">
				<div class="col-lg-12">
					<label class="label-custom" for="kco_amount"> Amount of order</label> <input type="text" name="kco_amount" class="form-control">
				</div>
			</div>
			<div class="row">
				<div class="col-lg-12">
					<button type="submit" id="create_kco_btn" class="btn btn-custom"> Generate KCO </button>
				</div>
			</div>
		</div>
	</div>
	</form>

	<div class="col-lg-6" id="result" class="border-customer">
		<div style="width:750px"> 
			<?php //echo $snippet; ?>
		</div>
	</div>
	<div class="col-lg-3"></div>
</div>
</body>
&#13;
&#13;
&#13;

<?php 

if (is_ajax()) {
  if (isset($_POST["action"]) && !empty($_POST["action"])) { //Checks if action value exists
    $action = $_POST["action"];
    switch($action) { //Switch case for value of action
      case "generate_kco": test_function(); break;
    }
  }
}

//Function to check if the request is an AJAX request
function is_ajax() {
  return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
}

function test_function(){
  $return = $_POST;

  //$return = $_POST["kco_gui"];
  //$return = $_POST["kco_country"];

  $return["json"] = json_encode($return);
  echo json_encode($return);
}

我在本地运行时收到以下回复:

  

{&#34; kco_country&#34;:&#34; SE&#34;&#34; kco_gui&#34;:&#34;桌面&#34;&#34; kco_amount&#34;:& #34;&#34;&#34;动作&#34;:&#34; generate_kco&#34;}

但我想将这些数据用于PHP脚本,并根据用户选择的内容发回不同的信息。现在除了上面提到的字符串之外,我什么也做不了。

当我尝试注释掉($return = $_POST["kco_gui"];)的代码时,我什么都没有得到。如果我尝试将数据发送到除Json以外的任何其他内容,我什么也得不到。

我可能完全错误地接近这个,我不知道。任何提示和帮助表示赞赏。 :)

对不起,如果格式是废话,这是我的第一篇帖子。此外,此代码是我正在构建的更大网站的一部分,因此这里没有引用引导程序,但这应该不重要,我想(并希望)。

非常感谢!

//杰克

0 个答案:

没有答案