tha*_*y_3 1 javascript php ajax jquery codeigniter
我正在尝试在我的codeIgniter项目上使用javascript代码.但我没有执行它.我尝试了太多方法来解决它:我调用外部js代码,它没有用.我把它放在我的视图页面中它也不起作用.我认为问题很简单,但我看不出来.你怎么看待这个问题?
view.php
<html>
<?php include("/external/css/style.css"); ?>
<head>
<title>New Customer</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script>
function makeAjaxCall(){
$.ajax({
alert("I'm here"); // I cant see that
type: "post",
url: "http://localhost/codeigniter_2/index.php/homepage/verifyUser",
cache: false,
data: $('#addCust').serialize(),
success: function(json){
try{
var obj = jQuery.parseJSON(json);
alert( obj['STATUS']);
}catch(e) {
alert('Exception while request..');
}
},
error: function(){
alert('Error while request..');
}
});
}
</script>
</head>
<body>
<h1>Customer Add</h1><a href="http://localhost/codeigniter_2/index.php">list</a>
<form name="addCust" method="post" action="insert">
<table border="1">
<tr>
<th>Customer Name:</th>
<td><input type="text" id="custom" name="customerName"/></td>
<tr>
<th>Customer Phone:</th>
<td><input type="text" name="phone"/></td>
<tr>
<th>Address:</th>
<td><input type="text" name="address"/></td>
.
.
.
<tr>
<td><input type="button" onclick="javascript:makeAjaxCall();" value="Submit"></td>
<td><input type="reset"></td>
</tr>
</form>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
conroller.php
public function verifyUser()
{
$userName = $_POST['customerID'];
$phone = $_POST['phone'];
$address = $_POST['address'];
if($userName=='' && $phone=11){
$status = array("STATUS"=>"true");
}
echo json_encode ($status) ;
}
Run Code Online (Sandbox Code Playgroud)
怎么了??
您需要将代码放在文档就绪处理程序中 -
$(document).ready(function() {
// your code here
function makeAjaxCall....
// EDIT: adding the click handler
$('#formSubmit').click(function()....
});
Run Code Online (Sandbox Code Playgroud)
而且,而不是这样做 -
<input onclick="javascript:makeAjaxCall();" value="Submit">
Run Code Online (Sandbox Code Playgroud)
我会给输入一个id -
<input name="submit" id="formSubmit" value="Submit">
Run Code Online (Sandbox Code Playgroud)
并向JavaScript添加单击处理程序 -
$('#formSumbit').click(function(e) {
e.preventDefault(); // keeps the button from acting normally
makeAjaxCall(); // calls the function
});
Run Code Online (Sandbox Code Playgroud)
还有一件事 - 使用console.log()而不是alert()代码.警报是没有故障的好方法,因为它们会导致代码停止,直到确认和AJAX调用过程中使用它们尤其糟糕.