2017-06-21 88 views
-2

我想要做的事很简单。 有一个简单的输入,它允许我输入一个名称+链接,将它添加到列表并将其保存到数据库中,以便保存它。如何将简单的jQuery输入与PHP脚本相关联,并将数据存储到MYSQL数据库中?

在我的HTML文件,我目前有:

<form id="form"> 
<input id="create-input" type="text" placeholder="To do"> 
<input id="create-link" type="text" placeholder="http://"> 
<button id="submit" type="button">Add Item</button> 
</form> 

在我的JS文件我有:

$(function(){ 
    $('#submit').on('click', addListItem); 
}); 

function addListItem() { 

    // Grab Input Data 
    var text = $('#create-input').val(); 
    var link = $('#create-link').val(); 

    // Creating To Do List 
    $('#todo').append('<li>' +text+' - '+link+ ' <button class="delete">Edit</button> <button class="delete">Delete</button> <button class="delete">Bukkaked!</button></li>'); 
    $('#create-input').val(''); 
    $('#create-link').val('http://'); 

} 

在我的PHP文件(连接到DB),我有:

<?php 
$servername = "localhost"; 
$database = "bucketlist"; 
$username = "bucketuser"; 
$password = "125632"; 

// Create connection 

$conn = mysqli_connect($servername, $username, $password, $database); 

// Check connection 

if (!$conn) { 

    die("Connection failed: " . mysqli_connect_error()); 

} 
echo "Connected successfully"; 

$sql = "INSERT INTO bucketlist (item, link) VALUES ('Thom', 'www.google.com')"; 

// Check for Success 

if (mysqli_query($conn, $sql)) { 
    echo "New record created successfully"; 
} 

// Check for Fail 

else { 
    echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
} 

mysqli_close($conn); 
?> 

现在我知道我需要以某种方式将变量(文本和链接)传递给PHP文件:

$sql = "INSERT INTO bucketlist (item, link) VALUES ('Thom', 'www.google.com')"; 

但我不知道如何。 任何提示?

+0

您确实提交了表单。 http://php.net/manual/en/tutorial.forms.php –

+0

你可以使用ajax发送表单数据...我也会改变事件监听器。我会将事件监听器附加到它自己的表单上,并监听提交事件。 '('submit',addListItem)''你确实需要添加'event.preventDefault();'以便表单不会提交表单默认操作。我没有看到发布解决方案的观点,因为我知道在stackoverflow上存在许多ajax示例,所以如果你研究,你会发现很多的例子和它的细节工作/如何使用它。 – NewToJS

+0

是的,你可以在后台使用AJAX做到这一点,但学会在跑步之前走路。 –

回答

0

为什么你需要的JQuery,你可以使用PHP只能

这里是你的代码的改变将值: -

<form id="form" method="post" action="process.php"> 
<input id="create-input" name="item" type="text" placeholder="To do"> 
<input id="create-link" name="link" type="text" placeholder="http://"> 
<button id="submit" type="button">Add Item</button> 
</form> 
<ul> 
<?php include('conn.php'); 
    $sql = "SELECT * FROM bucketlist"; 
    $result = mysqli_query($conn, $sql); 
if (mysqli_num_rows($result) > 0) { 
    while($row = mysqli_fetch_assoc($result)) { 
    echo '<li>Item-'. $row["item"].' & Link-'. $row["link"].'</li>'; 
    } 
} else { 
    echo "<li>No List</li>"; 
} 
?> 
</ul> 

conn.php

<?php 
$servername = "localhost"; 
$database = "bucketlist"; 
$username = "bucketuser"; 
$password = "125632";  
// Create connection 
$conn = mysqli_connect($servername, $username, $password, $database); 

// Check connection 

if (!$conn) { 

    die("Connection failed: " . mysqli_connect_error()); 

} 
echo "Connected successfully"; 
?> 

process.php

<?php 
include('conn.php'); 
$item = $_POST['item']; 
$item = $_POST['link']; 
$sql = "INSERT INTO bucketlist (item, link) VALUES ($item,$link)"; 

// Check for Success 

if (mysqli_query($conn, $sql)) { 
    header('location:yourpage.php'); 
} 

// Check for Fail 

else { 
    echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
} 

mysqli_close($conn); 
?> 

希望这可以帮助。

+0

毫无疑问,让客户端保持在同一页面上,而不是将客户端从一个页面移动到另一个页面?另外*“你可以仅使用php传递值”*你所做的更改不会使表单仅使用php提交。您已将action属性添加到HTML元素“The form”,它不是php ......是它。 – NewToJS

+0

当我说要使用PHP传递值时,我只想说他/她不需要使用jQuery。我错误地输入了它,他提供了一半的程序,他只是不知道如何获得这些值,所以我只改变了他的代码(看起来他是PHP的新手) – SYB

+0

然后,我会建议你进入更多关于使用'

'元素。这不仅会让你的答案更好,而且会让OP更好地理解当前源为什么不起作用以及为什么你进行了更改。 – NewToJS

0

使用ajax将您的html表单中的项目和链接的值发布到您的PHP脚本。 喜欢的东西:

var myItem = $('#create-input').html(); 
var myLink = $('#create-link').html(); 

$.ajax({ 
type: 'POST', 
url: 'https://yoururl/api/post.php', 
data: {item:myItem,link:myLink}, 
success: SuccessCall, 
error : FailureCall, 
cache:false, 
async:true, 
dataType: 'html' 
}); 
function SuccessCall(data,status){ 
alert("response from server is "+data); 
} 
function FailureCall(data,status){ 
alert("Server connection error"); 
} 

使用由SYB发布到检索HTML表单被送到该项目和链接的值的PHP脚本。

相关问题